在开发Vue3项目时,我们使用vite进行构建,由于项目中开发的是地图大屏项目,依赖较多,为了提高用户体验减少用户等待的时间,对此进行优化:
1.本文主要说的是拆分打包的方法:
// vite.config.ts
output: {
// 配置rollup输出选项
// Static resource classification and packaging//静态资源分类打包
chunkFileNames: 'assets/js/[name]-[hash].js', //代码块文件名
entryFileNames: 'assets/js/[name]-[hash].js', //入口文件名
assetFileNames: 'assets/[ext]/[name]-[hash].[ext]', // 资源文件名
manualChunks(id) {
if (id.includes('node_modules')) {
return id
.toString()
.split('node_modules/')[1]
.split('/')[0]
.toString()
}
},
},
解释:1
chunkFileNames 代码块文件名,统一放到assets/js/目录下
entryFileNames 入口文件名,统一放到assets/js/目录下
assetFileNames 资源文件名,统一放到assets/js(jpg/png/ttf/css等)/目录下
解释:2
manualChunks 此配置内进行分包,进行分离带三方依赖
上述拆分方式是自动将所有的包都单独拆分出来,优点就是不用手动配置,但是也有缺点,就是有的第三方包体积很小,会拆分出大量文件,反而降低请求效率
踩坑:
当项目使用pnpm进行管理包的时候再进行打包就会打出一个非常大的.pnpm包,这就不符合我们的预期了,我们要的就是小一点的包来进行本地缓存
还不知道怎么解决,目前就是不使用pnpm就恢复正常了,如果有大神知道怎么解决希望能留一下言