webpack.optimize.CommonsChunkPlugin的minChunks剖析

CommonsChunkPlugin, 望文生义,是用来把公用模块打包到一同的插件,以减小打包后js文件的体积。

使人疑惑的minChunks

中文社区和官网都对此属性语焉不详。

起首,minChunks的Chunk是什么意义?

…… a separate file (known as a chunk).

意义是当entry属性的值为对象时,作为多个进口的文件们,每一个都是一个chunk。

理解了chunk的定义,再来看看官网对minChunks的诠释:

minChunks:
number|Infinity|function(module, count) -> boolean,

// The
minimum number of chunks which need to contain a module before it’s moved into the commons chunk.

// The number must be greater than or equal 2 and lower than or equal to the number of chunks.

// Passing
Infinity just creates the commons chunk, but moves no modules into it.

// By providing a
function you can add custom logic. (Defaults to the number of chunks)

须要重点关注的额是minChunks的number值。
官网的诠释我着实看不懂:在被放到配合chunks之前须要包括模块的chunks的最小数目。
这是什么鬼意义,有无洋文好的大佬翻译一下?

minChunks:number

那末minChunks的值为number时,由什么结果呢?
经由我测试,发明minChunks是指某个模块最少被多少个进口文件依靠。
当大于即是minChunks设定的值时,该模块就会被打包到公用包中。
小于这个值时,该模块就会被和每一个进口文件打包在一同。

比方,有八个进口文件,minChunks值为7,那末,就算某个模块被6个进口文件依靠了,这个模块也会被打包6次,每一个依靠他的文件中都有一份雷同的代码。

minChunks:Infinity

搞懂了minChunks的number属性,Infinity属性就很好理解了。也就是不会把任何依靠的模块提取出来打包公用。

minChunks默认值

当疏忽此属性时,只要在被一切进口文件都依靠时,才会提取响应模块。

程度有限,说错了轻喷。

    原文作者:OLong
    原文地址: https://segmentfault.com/a/1190000013253553
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞