SplitChunksPlugin怎么在webpack4中使用-創(chuàng)新互聯(lián)

SplitChunksPlugin怎么在webpack4中使用?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

成都創(chuàng)新互聯(lián)公司長(zhǎng)期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為瀾滄企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,瀾滄網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

參數(shù):

  1. chunks: 表示顯示塊的范圍,有三個(gè)可選值:initial(初始?jí)K)、async(按需加載塊)、all(全部塊),默認(rèn)為all;

  2. minSize: 表示在壓縮前的最小模塊大小,默認(rèn)為0;

  3. minChunks: 表示被引用次數(shù),默認(rèn)為1;

  4. maxAsyncRequests: 大的按需(異步)加載次數(shù),默認(rèn)為1;

  5. maxInitialRequests: 大的初始化加載次數(shù),默認(rèn)為1;

  6. name: 拆分出來(lái)塊的名字(Chunk Names),默認(rèn)由塊名和hash值自動(dòng)生成;

  7. cacheGroups: 緩存組。

對(duì)于緩存組是一個(gè)對(duì)象,處了可以有上面的chunks、minSize、minChunksmaxAsyncRequests、maxInitialRequestsname外,還有其他的一些參數(shù):

如果不在緩存組中重新賦值,緩存組默認(rèn)繼承上面的選項(xiàng),但是還有一些參數(shù)是必須在緩存組進(jìn)行配置的。

  1. priority: 表示緩存的優(yōu)先級(jí);

  2. test: 緩存組的規(guī)則,表示符合條件的的放入當(dāng)前緩存組,值可以是functionboolean、string、RegExp,默認(rèn)為空;

  3. reuseExistingChunk: 表示可以使用已經(jīng)存在的塊,即如果滿足條件的塊已經(jīng)存在就使用已有的,不再創(chuàng)建一個(gè)新的塊。

1. 基本使用

首先,在新版本的webpack會(huì)默認(rèn)對(duì)代碼進(jìn)行拆分,拆分的規(guī)則是:

  1. 模塊被重復(fù)引用或者來(lái)自node_modules中的模塊

  2. 在壓縮前最小為30kb

  3. 在按需加載時(shí),請(qǐng)求數(shù)量小于等于5

  4. 在初始化加載時(shí),請(qǐng)求數(shù)量小于等于3

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

當(dāng)然也可以不使用默認(rèn)的配置,比如這樣:

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

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

2. 使用緩存組(Cache Groups)

如果想繼續(xù)細(xì)分代碼,可以使用緩存組(Cache Groups)。同樣的,緩存組也有默認(rèn)的配置;緩存組默認(rèn)將node_modules中的模塊拆分帶一個(gè)叫做vendors的代碼塊中,將最少重復(fù)引用兩次的模塊放入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
    }
  }
}

上面是緩存組的默認(rèn)配置,可以通過(guò)default:false禁用默認(rèn)的緩存組,然后就可以自定義緩存組,將初始化加載時(shí)被重復(fù)引用的模塊進(jìn)行拆分,就像這樣:

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

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

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

關(guān)于SplitChunksPlugin怎么在webpack4中使用問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站題目:SplitChunksPlugin怎么在webpack4中使用-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://bm7419.com/article30/dcoepo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、標(biāo)簽優(yōu)化、用戶體驗(yàn)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站收錄、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)