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, //  解决中文乱码
                modifyVars: {
                    "arcoblue-6": "#d1402f",
                },
                javascriptEnabled: true,
                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",
                target: import.meta.env.VITE_API_URL,
                // target: "http://sim.ainets.net",
                changeOrigin: true,
                ws: true,
                secure: true,
            },
        },
    },
});