| | import react from '@vitejs/plugin-react'; |
| | import { defineConfig, transformWithEsbuild } from 'vite'; |
| | import pkg from '@douyinfe/vite-plugin-semi'; |
| | const { vitePluginSemi } = pkg; |
| |
|
| | |
| | export default defineConfig({ |
| | 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'], |
| | semantic: ['semantic-ui-offline', 'semantic-ui-react'], |
| | visactor: ['@visactor/react-vchart', '@visactor/vchart'], |
| | 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, |
| | }, |
| | '/pg': { |
| | target: 'http://localhost:3000', |
| | changeOrigin: true, |
| | }, |
| | }, |
| | }, |
| | }); |
| |
|