/*
 * @Author: Z 1518051043@qq.com
 * @Date: 2025-09-12 13:51:43
 * @LastEditors: Z 1518051043@qq.com
 * @LastEditTime: 2025-12-12 09:40:22
 * @FilePath: \yuanxinPro\vite.config.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path';
import AutoImport from 'unplugin-auto-import/vite';

// https://vite.dev/config/
export default defineConfig({

  plugins: [vue(),
  AutoImport({
    dts: './auto-imports.d.ts',    // 项目根目录生成auto-imports.d.ts配置文件
    imports: ["vue", "vue-router", "pinia",]    // 设置自动导入的模块/插件(不用开发时每次都引入生命周期才能用)
  })
  ],
  // 构建配置
    build: {
      target: 'es2015', // 编译目标
      outDir: 'dist',  // 输出目录
      assetsDir: 'assets', // 静态资源目录
      sourcemap: 'true', // 按需开启
      minify: 'esbuild', // 压缩方式
      cssCodeSplit: true, // CSS代码分割
      
      // Rollup配置
      rollupOptions: {
        output: {
          // 代码分割策略
          manualChunks(id) {
            if (id.includes('node_modules')) {
              return 'vendor'
            }
            if (id.includes('src/router')) {
              return 'router'
            }
          },
          // 文件命名规则
          chunkFileNames: 'js/[name]-[hash].js',
          entryFileNames: 'js/[name]-[hash].js',
          assetFileNames: 'assets/[ext]/[name]-[hash][extname]'
        },
        // 外部依赖排除（如有需要）
        external: ['some-cdn-library']
      },

      // Terser压缩配置
      terserOptions: {
        compress: {
          drop_console: true,  // 移除console
          drop_debugger: true  // 移除debugger
        },
        format: {
          comments: false // 移除注释
        }
      }
    },
    
  //设置路径
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'),
    },
  },
  server: {
    port: 80,//指定开发服务器的端口
    // host: true,//指定开发度武器的主机名
    host: '0.0.0.0',//开发服务器将监听所有可用的网络地址（包括局域网和本地网络）
    open: true,//自动在默认浏览器上打开
    proxy: {
      '/api': {
        target: 'http://121.229.107.155:19020',  
     
        ws: false,//代理websocked
        changeOrigin: true,  //是否跨域
        secure: false,  //是否https接口
        rewrite: (path) => path.replace(/^\/api/, ""),//重写请求路径,使用正则表达式将请求路径中的 /dev-api 前缀替换为空字符串。例如，/dev-api/users 将被重写为 /users，然后代理到目标服务器。
      },
      
    }
  },
})
