概要
这个配置表示split前单个非按需导入的module的并行数的最低下限。
注:只对import或require直接引入的module有效。
分析
简单来讲,假如minChunks设置为n,那么某个module想要被拆分出去,那么它的共享次数(或者说并行请求次数必须 >= n):
1. minChunks设置为n
2. 假设有m个入口点,这m个入口点都直接引入了某个模块module(通过import或require直接或间接地引入了模块),也就是共享次数为m
3. 当m至少等于n时,module才会被单独拆分成一个bundle
但是,有个特例:
1. minChunks设置成1
2. 有一个入口点,入口点中import了一个模块,并打印了某些字符串,我们就叫它module
3. module被单独拆分成一个bundle,并且这个bundle文件中也包含了打印字符串的部分
我们注意到拆分出来的那个bundle包含了打印字符串的部分,那么如果入口点中仅仅包含了打印字符串的部分,没有引入module,结果是怎样呢,结果就是打印的那部分代码被单独拆分出来了。所以当minChunks被设为1时,被拆分出来的某个bundle一定包含非引入模块代码,如果非引入模块代码存在的话,而当值设为大于1的数值时,则不会出现这种情况。
最后,还有一个点需要注意,minChunks不能设为0,其值为 >= 1的正整数,不然为报错。
总结
- splitChunks.minChunks表示split前单个非按需导入的module的并行数的最低下限,即某个模块的引用次数必须大于等于设置的数值,该模块才能被拆分出来;
- splitChunks.minChunks值如果设为1,会存在被拆分出来的bundle包含非引入模块代码的可能,大于1则不会有这种情况;
- splitChunks.minChunks值必须大于等于1;
last(最后)
非常感谢您能阅读完这篇文章,您的阅读是我不断前进的动力。如果上述内容或许有些错误或者有些个人理解比较偏离实际,还望指出,谢谢!!!对于上面所述,有什么新的观点或发现有什么错误,希望您能指出。
最后,附上个人常逛的社交平台:
知乎:https://www.zhihu.com/people/bi-an-yao-91/activities
csdn:https://blog.csdn.net/YaoDeBiAn
github: https://github.com/yaodebian个人目前能力有限,并没有自主构建一个社区的能力,如有任何问题或想法与我沟通,请通过上述某个平台联系我,谢谢!!!