webpack4 optimization使用總結(jié)
optimization總結(jié)
minimize
默認(rèn)為true
,效果就是壓縮js代碼。
minimizer
可以自定義UglifyJsPlugin
和一些配置,默認(rèn)的壓縮為uglifyjs-webpack-plugin
//比如在構(gòu)建的時(shí)候,希望新增css的壓縮 minimizer: mode === "development" ? [] : [ new UglifyJsPlugin({ cache: true, parallel: true, sourceMap: mode === "development" }), new OptimizeCSSAssetsPlugin() ]
runtimeChunk
默認(rèn)為false
,runtime
相關(guān)的代碼(各個(gè)模塊之間的引用和加載的邏輯)內(nèi)嵌入每個(gè)entry
。
true
:對于每個(gè)entry
會生成runtime~${entrypoint.name}
的文件。
'single'
: 會生成一個(gè)唯一單獨(dú)的runtime.js
文件,就是manifest
。
multiple
:和true
一致。name:{}
:自定義runtime
文件的name
noEmitOnErrors
默認(rèn)為true
,編譯錯(cuò)誤的時(shí)候是否不生成資源。
namedModules,namedChunks
development
默認(rèn)都為true
,production
默認(rèn)為false
,選擇是否給module
和chunk
更有意義的名稱。
nameModules:true
這里會顯示路徑
nameModules:false
直接采用索引自增
namedChunks:true
namedChunks:false
采用索引
moduleIds
一般不建議配置namedModules
,namedChunks
針對module
的配置,這里會取hashed
。
針對chunk
的配置,特別是異步代碼
一般會采用@vue-cli3
推薦的插件
removeAvailableModules,removeEmptyChunks,mergeDuplicateChunks,flagIncludedChunks
這4個(gè)參數(shù)構(gòu)建默認(rèn)都是true
,主要是用于構(gòu)建優(yōu)化,不需要改,基本就是字面意思。
splitChunks
主要就是根據(jù)不同的策略來分割打包出來的bundle
。
默認(rèn)配置:
1.chunks
async(默認(rèn))
:
splitChunks:{ chunks:'async'//分割異步打包的代碼, }
打包出b和vue兩個(gè)chunk。
all
:
splitChunks:{ chunks:'all',//同時(shí)分割同步和異步代碼,推薦。 cacheGroup:{//默認(rèn)的規(guī)則不會打包,需要單獨(dú)定義 a: { test: /a\.js/, chunks: "all", name: "a", enforce: true } } }
initial
splitChunks:{ chunks:'initial'//也會同時(shí)打包同步和異步,但是異步內(nèi)部的引入不再考慮,直接打包在一起,會將vue和b的內(nèi)容直接打包成chunk, cacheGroup:{//默認(rèn)的規(guī)則不會打包,需要單獨(dú)定義 a: { test: /a\.js/, chunks: "all", name: "a", enforce: true } } }
2.name
分割的js名稱,默認(rèn)為true,返回
${cacheGroup的key
} ${automaticNameDelimiter
} ${moduleName
},可以自定義。
3.minChunks
最小公用模塊次數(shù),默認(rèn)為1
4.minSize,maxSize,maxAsyncRequests(按需加載時(shí)候最大的并行請求數(shù)),maxInitialRequests(一個(gè)入口最大的并行請求數(shù))
都為字面意思,一般不建議改。
5.cacheGroups
緩存策略,默認(rèn)設(shè)置了分割node_modules
和公用模塊。內(nèi)部的參數(shù)可以和覆蓋外部的參數(shù)。
test
正則匹配文件
priority
優(yōu)先級
reuseExistingChunk
是否復(fù)用存在的chunk
cacheGroup:{ a: { test: /a\.js/,//匹配規(guī)則 minChunks:2,//重寫公用chunks的次數(shù) chunks: "all", name: "a",//重寫文件名稱 enforce: true //強(qiáng)制生成 } }
6.automaticNameDelimiter
文件名稱分隔符號~
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
layui實(shí)現(xiàn)數(shù)據(jù)表格隱藏列的示例
今天小編就為大家分享一篇layui實(shí)現(xiàn)數(shù)據(jù)表格隱藏列的示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10使用JavaScript實(shí)現(xiàn)一個(gè)拖拽縮放效果
這篇文章主要介紹了如何使用JS實(shí)現(xiàn)一個(gè)這樣的拖拽縮放效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05js實(shí)現(xiàn)簡易點(diǎn)擊切換顯示或隱藏
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)簡易點(diǎn)擊切換顯示或隱藏,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11js動(dòng)態(tài)設(shè)置關(guān)鍵偵@keyframes的方法技巧
這篇文章主要給大家介紹了關(guān)于js動(dòng)態(tài)設(shè)置關(guān)鍵偵@keyframes的方法技巧,@keyframes規(guī)則通過在動(dòng)畫序列中定義關(guān)鍵幀(或waypoints)的樣式來控制CSS動(dòng)畫序列中的中間步驟,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04如何快速高效創(chuàng)建JavaScript 二維數(shù)組方法詳解
這篇文章主要為大家介紹了如何快速高效創(chuàng)建JavaScript 二維數(shù)組方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02