vite.config.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import path from 'path';
  2. import { defineConfig, loadEnv } from 'vite';
  3. import react from '@vitejs/plugin-react';
  4. export default defineConfig(({ mode }) => {
  5. const env = loadEnv(mode, '.', '');
  6. return {
  7. server: {
  8. port: 3000,
  9. host: '0.0.0.0',
  10. },
  11. plugins: [react()],
  12. define: {
  13. 'process.env.API_KEY': JSON.stringify(env.GEMINI_API_KEY),
  14. 'process.env.GEMINI_API_KEY': JSON.stringify(env.GEMINI_API_KEY)
  15. },
  16. resolve: {
  17. alias: {
  18. '@': path.resolve(__dirname, '.'),
  19. }
  20. },
  21. build: {
  22. // 启用代码分割
  23. rollupOptions: {
  24. output: {
  25. manualChunks: {
  26. // 将第三方库打包到单独的chunk中
  27. 'react-vendor': ['react', 'react-dom', 'react-router-dom'],
  28. 'utils': ['axios', 'qs'],
  29. 'icons': ['lucide-react']
  30. }
  31. }
  32. },
  33. // 启用压缩
  34. minify: 'esbuild',
  35. // 生成source map (生产环境可选)
  36. sourcemap: false,
  37. // 启用CSS代码分割
  38. cssCodeSplit: true,
  39. // 启用图片优化
  40. assetsInlineLimit: 4096, // 小于4KB的资源内联
  41. // 调整chunk大小警告阈值
  42. chunkSizeWarningLimit: 1000
  43. }
  44. };
  45. });