import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

// https://vite.dev/config/
export default defineConfig({
  plugins: [react()],
  server: {
    host: '0.0.0.0', // 允许外部访问
    port: 5173,
    open: false, // 服务器环境不自动打开浏览器
    cors: true, // 启用CORS
  },
  preview: {
    host: '0.0.0.0',
    port: 5173,
  },
  build: {
    // 🔧 优化构建配置，解决大块警告
    chunkSizeWarningLimit: 1000, // 提高块大小警告限制到1MB
    rollupOptions: {
      output: {
        // 📦 手动代码分割，优化加载性能
        manualChunks: {
          // React相关库单独打包
          'react-vendor': ['react', 'react-dom'],
          // Redux相关库单独打包
          'redux-vendor': ['@reduxjs/toolkit', 'react-redux'],
          // UI库单独打包
          'ui-vendor': ['antd'],
          // Socket.IO单独打包
          'socket-vendor': ['socket.io-client'],
        },
        // 📁 优化文件命名
        chunkFileNames: 'assets/js/[name]-[hash].js',
        entryFileNames: 'assets/js/[name]-[hash].js',
        assetFileNames: 'assets/[ext]/[name]-[hash].[ext]',
      }
    },
    // 🚀 构建优化
    sourcemap: false, // 生产环境不生成sourcemap
    minify: 'terser', // 使用terser压缩
    terserOptions: {
      compress: {
        drop_console: true, // 移除console
        drop_debugger: true, // 移除debugger
      },
    },
    // 📊 资源优化
    assetsInlineLimit: 4096, // 小于4KB的资源内联为base64
  },
  // 🔧 依赖优化
  optimizeDeps: {
    include: [
      'react',
      'react-dom',
      '@reduxjs/toolkit',
      'react-redux',
      'antd',
      'socket.io-client'
    ],
  }
})
