import path from 'path';
import { defineConfig, loadEnv } from 'vite';
import react from '@vitejs/plugin-react';
import tailwind from '@tailwindcss/vite';

export default defineConfig(({ mode }) => {
    const env = loadEnv(mode, '.', '');
    return {
      server: {
        port: 3000,
        host: '0.0.0.0',
      },
      plugins: [react(), tailwind()],
      define: {
        'process.env.API_KEY': JSON.stringify(env.GEMINI_API_KEY),
        'process.env.GEMINI_API_KEY': JSON.stringify(env.GEMINI_API_KEY)
      },
      resolve: {
        alias: {
          '@': path.resolve(__dirname, '.'),
        }
      },
      build: {
        // 启用代码分割
        rollupOptions: {
          output: {
            manualChunks: {
              // 将第三方库打包到单独的chunk中
              'react-vendor': ['react', 'react-dom', 'react-router-dom'],
              'utils': ['axios', 'qs'],
              'icons': ['lucide-react']
            }
          }
        },
        // 启用压缩
        minify: 'esbuild',
        // 生成source map (生产环境可选)
        sourcemap: false,
        // 启用CSS代码分割
        cssCodeSplit: true,
        // 启用图片优化
        assetsInlineLimit: 4096, // 小于4KB的资源内联
        // 调整chunk大小警告阈值
        chunkSizeWarningLimit: 1000
      }
    };
});
