webpack4之splitChunks.cacheGroups

概要

cacheGroups即緩存組,其中的每一項緩存組都可以繼承/覆蓋之前提到的splitChunks參數值(如name、maxSize、minSize、maxInitialRequests、maxAsyncRequests等),除此之外還額外提供了三個配置,分別爲:test, priority 和 reuseExistingChunk。

  • test: 表示要過濾 modules,默認爲所有的 modules,可匹配模塊路徑或 chunk 名字,當匹配到某個 chunk
    的名字時,這個chunk裏面引入的所有 module 都會選中;
  • priority:權重,數字越大表示優先級越高。一個 module 可能會滿足多個 cacheGroups 的正則匹配,到底將哪個緩存組應用於這個module,取決於優先級;
  • reuseExistingChunk:表示是否使用已有的 chunk,true 則表示如果當前的 chunk 包含的模塊已經被抽取出去了,那麼將不會重新生成新的,即幾個chunk複用被拆分出去的一個module;

除了上面的的屬性,緩存組還有兩個屬性——filename和enforce:

  • filename: 這個屬性會覆蓋output.filename這個屬性,前提是chunks設爲initial。同時,這個屬性也能全局設置,比如splitChunks.filename,但是如果chunks設爲非initial,webpack將會報錯,所以官方建議這個屬性不全局設置。
  • enforce: 布爾類型,默認爲false。當設爲true時,webpack會忽略splitChunks.minSize、splitChunks.minChunks、splitChunks.maxAsyncRequests、splitChunks.maxInitialRequests這幾個配置項,並且只要某個緩存組設置了enforce爲true,匹配的模塊就會忽略前面提到的那幾個屬性,即使有其他的緩存組匹配同樣的模塊,也沒有設置enforce,同時優先級比設置了enforce的高,enforce: true仍然有效。

案例

由於時間問題,暫且擱置一下。

last(最後)
非常感謝您能閱讀完這篇文章,您的閱讀是我不斷前進的動力。如果上述內容或許有些錯誤或者有些個人理解比較偏離實際,還望指出,謝謝!!!

對於上面所述,有什麼新的觀點或發現有什麼錯誤,希望您能指出。

最後,附上個人常逛的社交平臺:
知乎:https://www.zhihu.com/people/bi-an-yao-91/activities
csdn:https://blog.csdn.net/YaoDeBiAn
github: https://github.com/yaodebian

個人目前能力有限,並沒有自主構建一個社區的能力,如有任何問題或想法與我溝通,請通過上述某個平臺聯繫我,謝謝!!!

發佈了78 篇原創文章 · 獲贊 91 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章