import { defineConfig, loadEnv } from "vite"; import { resolve } from "path"; import path from "path"; import createVitePlugins from "./vite/plugins"; import { createSvgIconsPlugin } from "vite-plugin-svg-icons"; // https://vitejs.dev/config/ export default ({ mode, command }) => { const env = loadEnv(mode, process.cwd()); const { VITE_APP_ENV, VITE_APP_BASE } = env; // 判断是打生产环境包 const isProd = VITE_APP_ENV === "production"; // 根据是否生产环境,动态设置压缩配置 const buildConfig = { target: "esnext", minify: isProd ? "terser" : "esbuild", // 根据环境选择压缩工具 }; // 如果是生产环境,添加Terser的配置 if (isProd) { buildConfig.terserOptions = { compress: { drop_console: true, // 删除 console drop_debugger: true, // 删除 debugger }, format: { comments: false, // 删除所有注释 }, }; buildConfig.rollupOptions = { output: { manualChunks: { "element-plus": ["element-plus"], "@smallwei/avue": ["@smallwei/avue"], }, }, }; } return defineConfig({ base: VITE_APP_BASE, define: { __VUE_I18N_FULL_INSTALL__: true, __VUE_I18N_LEGACY_API__: true, __INTLIFY_PROD_DEVTOOLS__: false, }, server: { port: 2888, proxy: { "/api": { // target: "http://192.168.1.5:82", // target: "http://192.168.1.4:82", // target:'http://49.232.74.228:82', target: "http://192.168.0.120", //target: 'https://saber3.bladex.cn/api', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, ""), }, }, }, resolve: { alias: { "~": resolve(__dirname, "./"), "@": resolve(__dirname, "./src"), components: resolve(__dirname, "./src/components"), styles: resolve(__dirname, "./src/styles"), utils: resolve(__dirname, "./src/utils"), }, }, css: { preprocessorOptions: { scss: { api: "modern-compiler", additionalData: `@use "@/styles/variables.scss" as *;`, }, }, }, plugins: [ createVitePlugins(env, command === "build"), createSvgIconsPlugin({ iconDirs: [path.resolve(process.cwd(), "src/assets/svg")], symbolId: "icon-[dir]-[name]", }), ], build: buildConfig, optimizeDeps: { esbuildOptions: { target: "esnext", }, }, }); };