| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- /*
- 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 [email protected]
- */
- 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: {
- 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,
- },
- },
- },
- });
|