|
@@ -5,6 +5,9 @@ import path from 'path';
|
|
|
|
|
|
|
|
export default defineConfig(({ mode, command }) => {
|
|
export default defineConfig(({ mode, command }) => {
|
|
|
const env = loadEnv(mode, process.cwd());
|
|
const env = loadEnv(mode, process.cwd());
|
|
|
|
|
+ const isBuild = command === 'build';
|
|
|
|
|
+ // CI / 小内存机器:限制并行、跳过 gzip 插件(产物外层已 tar.gz)
|
|
|
|
|
+ const lowMem = process.env.CI === 'true' || process.env.VITE_LOW_MEM === '1';
|
|
|
return {
|
|
return {
|
|
|
// 部署生产环境和开发环境下的URL。
|
|
// 部署生产环境和开发环境下的URL。
|
|
|
// 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上
|
|
// 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上
|
|
@@ -17,7 +20,7 @@ export default defineConfig(({ mode, command }) => {
|
|
|
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
|
|
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
|
|
|
},
|
|
},
|
|
|
// https://cn.vitejs.dev/config/#resolve-extensions
|
|
// https://cn.vitejs.dev/config/#resolve-extensions
|
|
|
- plugins: createPlugins(env, command === 'build'),
|
|
|
|
|
|
|
+ plugins: createPlugins(env, isBuild),
|
|
|
server: {
|
|
server: {
|
|
|
host: '0.0.0.0',
|
|
host: '0.0.0.0',
|
|
|
port: Number(env.VITE_APP_PORT),
|
|
port: Number(env.VITE_APP_PORT),
|
|
@@ -54,6 +57,23 @@ export default defineConfig(({ mode, command }) => {
|
|
|
]
|
|
]
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
+ esbuild: {
|
|
|
|
|
+ legalComments: 'none'
|
|
|
|
|
+ },
|
|
|
|
|
+ build: {
|
|
|
|
|
+ sourcemap: false,
|
|
|
|
|
+ // 控制台 gzip 体积统计会再压缩一遍全部产物,大项目很吃内存
|
|
|
|
|
+ reportCompressedSize: false,
|
|
|
|
|
+ chunkSizeWarningLimit: 2000,
|
|
|
|
|
+ // esbuild 比 terser 省内存、更快
|
|
|
|
|
+ minify: 'esbuild',
|
|
|
|
|
+ cssMinify: 'esbuild',
|
|
|
|
|
+ target: 'es2020',
|
|
|
|
|
+ // 小内存 / CI:串行读文件,显著降低 transform 峰值
|
|
|
|
|
+ rollupOptions: {
|
|
|
|
|
+ maxParallelFileOps: lowMem ? 1 : 2
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
// 预编译
|
|
// 预编译
|
|
|
optimizeDeps: {
|
|
optimizeDeps: {
|
|
|
include: [
|
|
include: [
|
|
@@ -65,8 +85,7 @@ export default defineConfig(({ mode, command }) => {
|
|
|
'echarts',
|
|
'echarts',
|
|
|
'vue-i18n',
|
|
'vue-i18n',
|
|
|
'@vueup/vue-quill',
|
|
'@vueup/vue-quill',
|
|
|
- 'image-conversion',
|
|
|
|
|
- 'element-plus/es/components/**/css'
|
|
|
|
|
|
|
+ 'image-conversion'
|
|
|
]
|
|
]
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|