vite打包優(yōu)化分片打包依賴包詳解
vite打包優(yōu)化分片打包依賴包
在開(kāi)發(fā)Vue3項(xiàng)目時(shí),我們使用vite進(jìn)行構(gòu)建,由于項(xiàng)目中開(kāi)發(fā)的是地圖大屏項(xiàng)目,依賴較多
為了提高用戶體驗(yàn)減少用戶等待的時(shí)間,對(duì)此進(jìn)行優(yōu)化:
拆分打包的方法
// vite.config.ts
output: {
// 配置rollup輸出選項(xiàng)
// Static resource classification and packaging//靜態(tài)資源分類打包
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 代碼塊文件名,統(tǒng)一放到assets/js/目錄下
- entryFileNames 入口文件名,統(tǒng)一放到assets/js/目錄下
- assetFileNames 資源文件名,統(tǒng)一放到assets/js(jpg/png/ttf/css等)/目錄下
解釋:2
manualChunks 此配置內(nèi)進(jìn)行分包,進(jìn)行分離帶三方依賴
上述拆分方式是自動(dòng)將所有的包都單獨(dú)拆分出來(lái),優(yōu)點(diǎn)就是不用手動(dòng)配置,但是也有缺點(diǎn),就是有的第三方包體積很小,會(huì)拆分出大量文件,反而降低請(qǐng)求效率
踩坑
當(dāng)項(xiàng)目使用pnpm進(jìn)行管理包的時(shí)候再進(jìn)行打包就會(huì)打出一個(gè)非常大的.pnpm包,這就不符合我們的預(yù)期了,我們要的就是小一點(diǎn)的包來(lái)進(jìn)行本地緩存

還不知道怎么解決,目前就是不使用pnpm就恢復(fù)正常了
-----------------我是分割線-----------------
已經(jīng)找到解決方法,但是這種打包拆分的方法也不是很好,缺點(diǎn)就是拆分的顆粒度太小,分包太多也是會(huì)降低速度的
build: {
outDir: 'dist',
minify: 'esbuild',
// 禁用 gzip 壓縮大小報(bào)告,可略微減少打包時(shí)間
reportCompressedSize: false,
// 規(guī)定觸發(fā)警告的 chunk 大小
chunkSizeWarningLimit: 2000,
rollupOptions: {
//配置rollup
output: {
// 配置rollup輸出選項(xiàng)
// Static resource classification and packaging//靜態(tài)資源分類打包
chunkFileNames: `assets/js/[name]-${visonInfo}-[hash].js`, //代碼塊文件名
entryFileNames: `assets/js/[name]-${visonInfo}-[hash].js`, //入口文件名
assetFileNames: `assets/[ext]/[name]-${visonInfo}-[hash].[ext]`, // 資源文件名
manualChunks(id) {
if (id.includes('node_modules')) {
//使用pnpm打包
return id.toString().split('node_modules/')[2].split('/')[0].toString()
}
},
},
},
},簡(jiǎn)單的說(shuō)就是,找的位置不對(duì),直接找到.pnpm文件下的插件文件下的node_modules文件夾下,就對(duì)了,
例如:
/Users/li/project/gongsi/vue3_flow_monitoring/node_modules/.pnpm/@antv+algorithm@0.1.26/node_modules/@antv/algorithm/lib/structs/queue.js?commonjs-exports
再進(jìn)行截取就行了

這回就沒(méi)有超級(jí)大的包了。。。。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 解決vite build打包后頁(yè)面不能正常訪問(wèn)的情況
- vue3+ts+vite打包后靜態(tài)資源404無(wú)法加載js和css問(wèn)題解決辦法
- vite打包只生成了一個(gè)css和js文件問(wèn)題的解決方法
- vite打包出現(xiàn)?"default"?is?not?exported?by?"node_modules/...問(wèn)題解決辦法
- 關(guān)于vite+vue3打包部署問(wèn)題
- Vue3在history模式下如何通過(guò)vite打包部署白屏
- 解決vite打包后白屏之router-view不生效問(wèn)題
- VUE3?Vite打包后動(dòng)態(tài)圖片資源不顯示問(wèn)題解決方法
- vite分目錄打包及去掉默認(rèn)的.gz?文件的操作方法
- VUE3項(xiàng)目VITE打包優(yōu)化的實(shí)現(xiàn)
- Vite中Rollup打包的實(shí)現(xiàn)
相關(guān)文章
vue3.x 使用jsplumb實(shí)現(xiàn)拖拽連線
這篇文章主要為大家詳細(xì)介紹了vue3.x 使用jsplumb實(shí)現(xiàn)拖拽連線,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Vue項(xiàng)目發(fā)布后瀏覽器緩存問(wèn)題解決方案
在vue項(xiàng)目開(kāi)發(fā)中一直有一個(gè)令人都疼的問(wèn)題,就是緩存問(wèn)題,這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目發(fā)布后瀏覽器緩存問(wèn)題的解決方案,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09
Vxe-Table開(kāi)發(fā)中的各種坑以及避坑指南
vxe-table是一個(gè)全功能的Vue表格,滿足絕大部分對(duì)Table的一切需求,與任意組件庫(kù)完美兼容,下面這篇文章主要給大家介紹了關(guān)于Vxe-Table開(kāi)發(fā)中各種坑以及避坑的相關(guān)資料,需要的朋友可以參考下2022-09-09
Vue?axios庫(kù)發(fā)送請(qǐng)求的示例介紹
axios是基于promise的HTTP庫(kù),可以使用在瀏覽器和node.js中,它不是vue的第三方插件,vue-axios是axios集成到Vue.js的小包裝器,可以像插件一樣安裝使用:Vue.use(VueAxios,?axios),本文給大家介紹Vue?axios和vue-axios關(guān)系,感興趣的朋友一起看看吧2022-08-08
vue+webpack 打包文件 404 頁(yè)面空白的解決方法
下面小編就為大家分享一篇vue+webpack 打包文件 404 頁(yè)面空白的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
Vue中@change、@input和@blur的區(qū)別及@keyup介紹
這篇文章主要給大家介紹了關(guān)于Vue中@change、@input和@blur的區(qū)別及@keyup介紹的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-02-02
vue實(shí)現(xiàn)頁(yè)面渲染時(shí)候執(zhí)行某需求的示例代碼
本文主要介紹了vue實(shí)現(xiàn)頁(yè)面渲染時(shí)候執(zhí)行某需求,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05
vue動(dòng)態(tài)子組件的兩種實(shí)現(xiàn)方式
這篇文章主要介紹了vue動(dòng)態(tài)子組件的兩種實(shí)現(xiàn)方式,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09

