43 lines
1.5 KiB
TypeScript
43 lines
1.5 KiB
TypeScript
|
|
/**
|
|||
|
|
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
|||
|
|
* No deletion without permission, or be held responsible to law.
|
|||
|
|
* @author ThinkGem
|
|||
|
|
*/
|
|||
|
|
import type { BuildOptions } from 'vite';
|
|||
|
|
|
|||
|
|
// 现代浏览器支持列表 https://cn.vitejs.dev/config/build-options.html#build-target
|
|||
|
|
export const viteTarget = ['chrome107', 'edge107', 'firefox104', 'safari16'];
|
|||
|
|
// 低版本浏览器支持列表,VITE_LEGACY 参数开启时有效 https://www.npmjs.com/package/@vitejs/plugin-legacy
|
|||
|
|
export const legacyTargets = ['chrome>=87', 'edge>=88', 'firefox>=78', 'safari>=14'];
|
|||
|
|
|
|||
|
|
export function createBuildOptions(viteEnv: ViteEnv): BuildOptions {
|
|||
|
|
const timestamp = new Date().getTime();
|
|||
|
|
return {
|
|||
|
|
target: viteTarget,
|
|||
|
|
cssTarget: viteTarget,
|
|||
|
|
outDir: viteEnv.VITE_OUTPUT_DIR ?? 'dist',
|
|||
|
|
// 启用 terser 缩小器,当设置 terserOptions 时才会有效
|
|||
|
|
// minify: 'terser',
|
|||
|
|
// terserOptions: {
|
|||
|
|
// compress: {
|
|||
|
|
// keep_infinity: true,
|
|||
|
|
// drop_console: viteEnv.VITE_DROP_CONSOLE,
|
|||
|
|
// },
|
|||
|
|
// },
|
|||
|
|
// 禁用报告压缩块大小,可以稍微提高构建速度
|
|||
|
|
reportCompressedSize: false,
|
|||
|
|
chunkSizeWarningLimit: 9000,
|
|||
|
|
rollupOptions: {
|
|||
|
|
maxParallelFileOps: 50,
|
|||
|
|
output: {
|
|||
|
|
entryFileNames: `assets/[name]-[hash]-${timestamp}.js`,
|
|||
|
|
experimentalMinChunkSize: 12288,
|
|||
|
|
// manualChunks: {
|
|||
|
|
// vue: ['vue', 'vue-router'],
|
|||
|
|
// antd: ['ant-design-vue', '@ant-design/icons-vue'],
|
|||
|
|
// },
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
};
|
|||
|
|
}
|