vite.config.ts 1.3 KB

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