Files
new-api/web/vite.config.js

98 lines
2.5 KiB
JavaScript
Raw Permalink Normal View History

/*
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
*/
2024-03-23 19:09:09 +08:00
import react from '@vitejs/plugin-react';
2024-03-23 21:23:39 +08:00
import { defineConfig, transformWithEsbuild } from 'vite';
import pkg from '@douyinfe/vite-plugin-semi';
const { vitePluginSemi } = pkg;
2024-03-23 19:09:09 +08:00
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
{
name: 'treat-js-files-as-jsx',
async transform(code, id) {
2024-03-23 21:23:39 +08:00
if (!/src\/.*\.js$/.test(id)) {
return null;
}
2024-03-23 19:09:09 +08:00
// Use the exposed transform from vite, instead of directly
// transforming with esbuild
return transformWithEsbuild(code, id, {
loader: 'jsx',
jsx: 'automatic',
2024-03-23 21:23:39 +08:00
});
2024-03-23 19:09:09 +08:00
},
},
react(),
vitePluginSemi({
cssLayer: true
})
2024-03-23 19:09:09 +08:00
],
optimizeDeps: {
force: true,
esbuildOptions: {
loader: {
'.js': 'jsx',
2024-12-12 23:32:55 +08:00
'.json': 'json',
2024-03-23 19:09:09 +08:00
},
},
},
2024-03-23 19:37:19 +08:00
build: {
rollupOptions: {
output: {
manualChunks: {
2024-03-23 20:22:00 +08:00
'react-core': ['react', 'react-dom', 'react-router-dom'],
'semi-ui': ['@douyinfe/semi-icons', '@douyinfe/semi-ui'],
2024-03-23 21:23:39 +08:00
tools: ['axios', 'history', 'marked'],
'react-components': [
'react-dropzone',
'react-fireworks',
'react-telegram-login',
'react-toastify',
'react-turnstile',
],
2025-04-04 12:00:38 +08:00
i18n: [
'i18next',
'react-i18next',
'i18next-browser-languagedetector',
],
2024-03-23 19:37:19 +08:00
},
},
},
},
2024-03-23 19:09:09 +08:00
server: {
host: '0.0.0.0',
2024-03-23 19:09:09 +08:00
proxy: {
'/api': {
2024-03-23 21:23:39 +08:00
target: 'http://localhost:3000',
2024-03-23 19:09:09 +08:00
changeOrigin: true,
2024-03-23 21:23:39 +08:00
},
'/mj': {
target: 'http://localhost:3000',
changeOrigin: true,
},
2024-09-26 00:59:09 +08:00
'/pg': {
target: 'http://localhost:3000',
changeOrigin: true,
},
2024-03-23 21:23:39 +08:00
},
},
2024-03-23 19:09:09 +08:00
});