|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import react from '@vitejs/plugin-react'; |
|
|
import { defineConfig, transformWithEsbuild } from 'vite'; |
|
|
import pkg from '@douyinfe/vite-plugin-semi'; |
|
|
import path from 'path'; |
|
|
const { vitePluginSemi } = pkg; |
|
|
|
|
|
|
|
|
export default defineConfig({ |
|
|
resolve: { |
|
|
alias: { |
|
|
'@': path.resolve(__dirname, './src'), |
|
|
}, |
|
|
}, |
|
|
plugins: [ |
|
|
{ |
|
|
name: 'treat-js-files-as-jsx', |
|
|
async transform(code, id) { |
|
|
if (!/src\/.*\.js$/.test(id)) { |
|
|
return null; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return transformWithEsbuild(code, id, { |
|
|
loader: 'jsx', |
|
|
jsx: 'automatic', |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
react(), |
|
|
vitePluginSemi({ |
|
|
cssLayer: true, |
|
|
}), |
|
|
], |
|
|
optimizeDeps: { |
|
|
force: true, |
|
|
esbuildOptions: { |
|
|
loader: { |
|
|
'.js': 'jsx', |
|
|
'.json': 'json', |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
build: { |
|
|
rollupOptions: { |
|
|
output: { |
|
|
manualChunks: { |
|
|
'react-core': ['react', 'react-dom', 'react-router-dom'], |
|
|
'semi-ui': ['@douyinfe/semi-icons', '@douyinfe/semi-ui'], |
|
|
tools: ['axios', 'history', 'marked'], |
|
|
'react-components': [ |
|
|
'react-dropzone', |
|
|
'react-fireworks', |
|
|
'react-telegram-login', |
|
|
'react-toastify', |
|
|
'react-turnstile', |
|
|
], |
|
|
i18n: [ |
|
|
'i18next', |
|
|
'react-i18next', |
|
|
'i18next-browser-languagedetector', |
|
|
], |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
server: { |
|
|
host: '0.0.0.0', |
|
|
proxy: { |
|
|
'/api': { |
|
|
target: 'http://localhost:3000', |
|
|
changeOrigin: true, |
|
|
}, |
|
|
'/mj': { |
|
|
target: 'http://localhost:3000', |
|
|
changeOrigin: true, |
|
|
}, |
|
|
'/pg': { |
|
|
target: 'http://localhost:3000', |
|
|
changeOrigin: true, |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}); |
|
|
|