Spaces:
Build error
Build error
| /* | |
| Copyright (C) 2025 QuantumNous | |
| This program is free software: you can redistribute it and/or modify | |
| it under the terms of the GNU Affero General Public License as | |
| published by the Free Software Foundation, either version 3 of the | |
| License, or (at your option) any later version. | |
| This program is distributed in the hope that it will be useful, | |
| but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| GNU Affero General Public License for more details. | |
| You should have received a copy of the GNU Affero General Public License | |
| along with this program. If not, see <https://www.gnu.org/licenses/>. | |
| For commercial licensing, please contact support@quantumnous.com | |
| */ | |
| 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; | |
| // https://vitejs.dev/config/ | |
| 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; | |
| } | |
| // Use the exposed transform from vite, instead of directly | |
| // transforming with esbuild | |
| return transformWithEsbuild(code, id, { | |
| loader: 'jsx', | |
| jsx: 'automatic', | |
| }); | |
| }, | |
| }, | |
| react(), | |
| vitePluginSemi({ | |
| cssLayer: true, | |
| }), | |
| ], | |
| optimizeDeps: { | |
| force: true, | |
| esbuildOptions: { | |
| loader: { | |
| '.js': 'jsx', | |
| '.json': 'json', | |
| }, | |
| }, | |
| }, | |
| build: { | |
| chunkSizeWarningLimit: 1000, | |
| rollupOptions: { | |
| onwarn(warning, warn) { | |
| // 忽略 lottie-web 和其他库的 eval 警告 | |
| if (warning.code === 'EVAL') { | |
| return; | |
| } | |
| // 忽略循环依赖警告 | |
| if (warning.code === 'CIRCULAR_DEPENDENCY') { | |
| return; | |
| } | |
| warn(warning); | |
| }, | |
| 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, | |
| }, | |
| }, | |
| }, | |
| }); |