build: 📦 依赖预构建和打包优化

This commit is contained in:
xiangshu233 2024-02-17 15:00:25 +08:00
parent 9b3b9d38e2
commit 11ccfc11d4

View File

@ -98,6 +98,26 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
reportCompressedSize: true,
// chunk 大小警告的限制(以 kbs 为单位)
chunkSizeWarningLimit: 2000,
// 自定义底层的 Rollup 打包配置
rollupOptions: {
// 静态资源分类打包
output: {
chunkFileNames: 'js/[name]-[hash].js', // 引入文件名的名称
entryFileNames: 'js/[name]-[hash].js', // 包的入口文件名称
assetFileNames: '[ext]/[name]-[hash].[ext]', // 资源文件像 字体,图片等
// 将 node_modules 三方依赖包最小化拆分
manualChunks(id) {
if (id.includes('node_modules') && !id.includes('@antv')) {
const paths = id.toString().split('node_modules/')
if (paths[2]) {
return paths[2].split('/')[0].toString()
}
return paths[1].split('/')[0].toString()
}
},
},
},
},
css: {
@ -133,11 +153,28 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
},
// 有需要再打开,否则 既不优化 也不排除
// optimizeDeps: {
// include: [],
// // 打包时强制排除的依赖项
// exclude: [],
// },
optimizeDeps: {
/**
* vite include esm node_modules/.vite
*
* include
* vite
* 使 node_modules/.vite
* 使 src/main.ts
* include vite node_modules/.vite
*/
include: [
'pinia',
'lodash-es',
'axios',
'@vicons/antd',
'@vicons/ionicons5',
],
// 打包时强制排除的依赖项
exclude: [
],
},
// 加载插件
plugins: createVitePlugins(viteEnv, isBuild, prodMock),