You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.5 KiB
92 lines
2.5 KiB
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", |
|
}, |
|
}, |
|
}); |
|
};
|
|
|