import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import { visualizer } from 'rollup-plugin-visualizer'; // https://vite.dev/config/ export default defineConfig({ plugins: [ react(), // Bundle 分析工具(通过 ANALYZE=true 环境变量启用) process.env.ANALYZE === 'true' && visualizer({ open: false, filename: 'dist/stats.html', gzipSize: true, brotliSize: true, template: 'treemap', }), ].filter(Boolean), build: { // Enable minification for production builds (Req 13.9) // Vite 8+ uses oxc by default; 'esbuild' requires a separate install. // Leaving minify at its default ('oxc' in Vite 8) gives fast, aggressive // minification out of the box. // minify: 'esbuild', // uncomment if esbuild is installed separately // Large optional libraries are split by dynamic imports. chunkSizeWarningLimit: 600, rollupOptions: { output: { manualChunks(id: string) { if (/node_modules[\\/](?:react|react-dom)[\\/]/.test(id)) { return 'react-vendor'; } if (/node_modules[\\/](?:axios|zustand|uuid)[\\/]/.test(id)) { return 'utils-vendor'; } }, }, }, // 启用 CSS 代码分割 cssCodeSplit: true, // 小于此阈值的资源将内联为 base64 assetsInlineLimit: 4096, // 4KB }, // 开发服务器配置 server: { port: 5173, host: true, open: false, }, // 依赖预构建优化 optimizeDeps: { include: [ 'react', 'react-dom', 'axios', 'zustand', 'antd', '@ant-design/icons', ], // 排除不需要预构建的大型依赖 exclude: [ 'mammoth', ], }, });