| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import react from '@vitejs/plugin-react';
- import { defineConfig, transformWithEsbuild } from 'vite';
- import pkg from '@douyinfe/vite-plugin-semi';
- const { vitePluginSemi } = pkg;
- // https://vitejs.dev/config/
- export default defineConfig({
- 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'],
- 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,
- },
- '/mj': {
- target: 'http://localhost:3000',
- changeOrigin: true,
- },
- '/pg': {
- target: 'http://localhost:3000',
- changeOrigin: true,
- },
- },
- },
- });
|