国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 手机| 天镇县| 隆化县| 孝昌县| 攀枝花市| 游戏| 全州县| 衡南县| 杭锦后旗| 芦山县| 怀安县| 咸丰县| 绥宁县| 湘潭市| 临沧市| 鸡泽县| 武川县| 南投市| 枣强县| 广平县| 宜川县| 文成县| 南涧| 平乐县| 朝阳市| 甘洛县| 进贤县| 彭阳县| 彰武县| 鹤山市| 绥江县| 萨嘎县| 托克逊县| 新巴尔虎右旗| 马公市| 淅川县| 河北省| 浠水县| 南漳县| 大荔县| 乡城县|