最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

webpack4之SplitChunksPlugin使用指南

 更新時間:2018年06月12日 10:07:16   作者:xhsdnn  
這篇文章主要介紹了webpack4之SplitChunksPlugin使用指南,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

寫在前面

前面寫了一篇有關webpack4的不完全升級指南以及在webpack3.x遷移的時候遇到的問題,有興許可以看一下。

0. 參數介紹

先對參數有一個大概的認識,雖然擼了很多遍官方的更新文檔,但是還是去參看了一下新的wbepack源碼,下面是各種參數及含義:

  1. chunks: 表示顯示塊的范圍,有三個可選值:initial(初始塊)、async(按需加載塊)、all(全部塊),默認為all;
  2. minSize: 表示在壓縮前的最小模塊大小,默認為0;
  3. minChunks: 表示被引用次數,默認為1;
  4. maxAsyncRequests: 最大的按需(異步)加載次數,默認為1;
  5. maxInitialRequests: 最大的初始化加載次數,默認為1;
  6. name: 拆分出來塊的名字(Chunk Names),默認由塊名和hash值自動生成;
  7. cacheGroups: 緩存組。

對于緩存組是一個對象,處了可以有上面的chunksminSize、minChunksmaxAsyncRequests、maxInitialRequestsname外,還有其他的一些參數:

如果不在緩存組中重新賦值,緩存組默認繼承上面的選項,但是還有一些參數是必須在緩存組進行配置的。

  1. priority: 表示緩存的優(yōu)先級;
  2. test: 緩存組的規(guī)則,表示符合條件的的放入當前緩存組,值可以是function、boolean、string、RegExp,默認為空;
  3. reuseExistingChunk: 表示可以使用已經存在的塊,即如果滿足條件的塊已經存在就使用已有的,不再創(chuàng)建一個新的塊。

1. 基本使用

首先,在新版本的webpack會默認對代碼進行拆分,拆分的規(guī)則是:

  1. 模塊被重復引用或者來自node_modules中的模塊
  2. 在壓縮前最小為30kb
  3. 在按需加載時,請求數量小于等于5
  4. 在初始化加載時,請求數量小于等于3

小于30kb的模塊不值得再單獨發(fā)送一次請求,在很小的模塊的前提下,相比與多次打包,減少請求次數成本要低。

當然也可以不使用默認的配置,比如這樣:

new webpack.optimize.SplitChunksPlugin({
  chunks: "all",
  minSize: 20000,
  minChunks: 1,
  maxAsyncRequests: 5,
  maxInitialRequests: 3,
  name: true
)}

上面的代碼就表示,在所有代碼中,引用模塊大小最小為20kb,引用次數最少為1次,按需加載最大請求次數為5,初始化加載最大請求次數為3的所有模塊就行拆分到一個單獨的代碼塊中,name表示代碼的名字,設置為true則表示根據模塊和緩存組秘鑰自動生成。

2. 使用緩存組(Cache Groups)

如果想繼續(xù)細分代碼,可以使用緩存組(Cache Groups)。同樣的,緩存組也有默認的配置;緩存組默認將node_modules中的模塊拆分帶一個叫做vendors的代碼塊中,將最少重復引用兩次的模塊放入default中。

這是一段官方里面的代碼:

splitChunks: {
  chunks: "async",
  minSize: 30000,
  minChunks: 1,
  maxAsyncRequests: 5,
  maxInitialRequests: 3,
  name: true,
  cacheGroups: {
    default: {
      minChunks: 2,
      priority: -20
      reuseExistingChunk: true,
    },
    vendors: {
      test: /[\\/]node_modules[\\/]/,
      priority: -10
    }
  }
}

上面是緩存組的默認配置,可以通過default:false禁用默認的緩存組,然后就可以自定義緩存組,將初始化加載時被重復引用的模塊進行拆分,就像這樣:

cacheGroups: {
  commons: {
    name: "commons",
    chunks: "initial",
    minChunks: 2
  }
}

之后就隨心所欲,可以根據具體的需求,創(chuàng)建多個緩存組:

cacheGroups: {
  a: {
    // ...
  },
  b: {
    // ...
  }
  // ...
}

寫在后面

webpack更新已經過了很多天了,最近算是把更新的基本都過了一遍,在此記錄以便日后查看,理解有問題的地方還請不吝賜教。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

姚安县| 大英县| 宝兴县| 新乡市| 鹤山市| 亳州市| 泰和县| 寿宁县| 谷城县| 伊通| 肇庆市| 文山县| 噶尔县| 昭平县| 岳阳县| 西青区| 嵊州市| 桂阳县| 吉林市| 京山县| 库尔勒市| 长葛市| 凤山市| 婺源县| 壤塘县| 靖西县| 宝清县| 永城市| 永州市| 长武县| 东宁县| 大姚县| 峡江县| 永靖县| 沁源县| 临泽县| 大竹县| 嘉义县| 和顺县| 尉犁县| 朝阳区|