import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
 
import { resolve } from 'path'


function pathResolve(dir) {
  return resolve(process.cwd(), '.', dir)
}

export default defineConfig({
  resolve: {
    alias: [
      {
        find: '@',
        replacement: pathResolve('src')
      }
    ],
    dedupe: ['vue']
  },
  plugins: [
    vue(),
    createSvgIconsPlugin({
      // 指定需要缓存的图标文件夹
      iconDirs: [resolve(process.cwd(), 'src/assets/svg')],
      // 指定symbolId格式
      symbolId: 'icon-[dir]-[name]',
    })
  ],
  css: {
    // css预处理器
    preprocessorOptions: {
      less: {
        charset: false,
        additionalData:
          '@import "@/assets/css/theme.less";@import "@/assets/css/global.less";',
      },
    },
  },
  build: {
    minify: true, // 生产环境不生成sourcemap
    target: 'es2015',
    // 警报门槛,限制大文件大小
    chunkSizeWarningLimit: 5000,
    rollupOptions: {
      external: [], // 外部化处理那些你不想打包进库的依赖
      // 静态资源分类打包
      output: {
        chunkFileNames: 'static/js/[name]-[hash].js',
        entryFileNames: 'static/js/[name]-[hash].js',
        assetFileNames: 'static/[ext]/[name]-[hash].[ext]'
      },
    },
  },
  server: {
    port: 8088,
    host: '0.0.0.0',
    open: true,
    cors: true,
    hmr: true,
    proxy: {
      '/api': {
        target: "http://sim.nanodreamtech.com",
        changeOrigin: true,
        ws: true,
        secure: true,
      },
    }
  }
})