国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

webpack 從指定入口文件中提取公共文件的方法

2019-11-19 12:31:50
字體:
供稿:網(wǎng)友

在不明白CommonsChunkPlugin的使用情況下,直接上手webpack4的splitChunks,實(shí)在是難上加難。為了能更好的理解splitChunks的使用,必須出個(gè)題目,練練手,才能從中有所收獲(下面的題目不考慮實(shí)際應(yīng)用場景):

從指定入口文件中提取公共文件

CommonsChunkPlugin的實(shí)現(xiàn):entry: {    index:'./src/index.js',    index1:'./src/index1.js',    index2:'./src/index2.js'},plugins: [  new CommonsChunkPlugin({    name:"common1",    chunks:['index','index1','index2']  })]

其中index和index1以及index2都是打包的入口文件。

splitChunks的實(shí)現(xiàn):

optimization: {    splitChunks: {      chunks:"all",      minSize: 0,      cacheGroups: {        common: {          minChunks: 3,          priority: -1,          name:'common',          chunks (chunk) {            // exclude `my-excluded-chunk`            return ['index','index1','index2'].includes(chunk.name);          }        }      }    }  }

在cacheGroups下面我們定義了一個(gè)common。通過chunks函數(shù),指定三個(gè)入口文件為:'index','index1','index2',同時(shí)我們還要設(shè)置minChunks為3,表示指定三個(gè)入口文件中提取出的公共文件,最少要被三個(gè)不同的入口文件引用。所以就是從三個(gè)入口文件中提取公共的文件。

從兩個(gè)公共文件中,再提取公共部分

先說一下,這是什么意思:

  • 有6個(gè)公共文件a,b,c,d,e,f。
  • 從a,b,c中提取其公共的部分x,從d,e,f中也提取公共部分y。
  • 從x,y中再提取公共部分z。

下面給出webpack3 和webpack4下的處理

CommonsChunkPlugin的實(shí)現(xiàn):

new CommonsChunkPlugin({  name:"common1",  chunks:['index','index1','index2']}),new CommonsChunkPlugin({  name:"common2",  chunks:['app','app1','app2']}),new CommonsChunkPlugin({  name:"common3",  chunks:['common1','common2']})

很清楚,先從'index','index1','index2'中提取公共文件‘common1',再從'app','app1','app2'中提取公共文件‘common2'。最后從‘common1'和‘common2'中再提取出公共文件common3。

splitChunks的實(shí)現(xiàn):

optimization: {    runtimeChunk: 'single',    splitChunks: {      chunks:"all",      minSize: 0,      cacheGroups: {        common3: {         minChunks: 6,         priority: 1,         reuseExistingChunk: true        },        common2: {          minChunks: 3,          priority: -2,          name:'common2',          chunks (chunk) {            // exclude `my-excluded-chunk`            return ['app','app1','app2'].includes(chunk.name);          }        },        common1: {          priority: -1,          name: 'common1',          minChunks: 3,          enforce: true,          chunks (chunk) {            return ['index','index1','index2'].includes(chunk.name);          }        }      }    }  }

我沒有從文檔中找到:提取公共文件之后再處理的方法。所以我用了另外一種方式:

  • 先從6個(gè)文件中提取出公共的文件,即common3(common1和common2的公共文件)。
  • 從'index','index1','index2'中提取common1
  • 從'app','app1','app2'中提取common2

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 红河县| 哈尔滨市| 沙田区| 蒙自县| 德格县| 大竹县| 双桥区| 洪泽县| 新平| 胶州市| 云霄县| 囊谦县| 仪陇县| 萨嘎县| 库尔勒市| 黄山市| 平阳县| 霍邱县| 花莲县| 镇坪县| 南漳县| 沂南县| 西城区| 平南县| 搜索| 彰化县| 松原市| 禹城市| 潞西市| 承德县| 密云县| 富顺县| 安庆市| 怀远县| 建水县| 通州区| 莆田市| 霍邱县| 泰宁县| 明光市| 辽宁省|