官网解释不是很理解
首先我们要明白CommonsChunk是干什么用的,Common是通用、共用的意思,Chunk是大块的意思,那么整个这个插件的作用就是把我们代码中用到的零散的js文件合并成一个一个的大块供系统调用,这样可以有效地减少http请求次数。
那么把哪些js合并在一个大块里,依据什么原则呢?就由这个minChunks来决定,min是minimum的缩写,意思就是最少大块数,它需要是比1大的整数,同时还要求小于等于大块总数,这里如果你设置为2,那就是说如果有2个以上的大块都用到了某一个js文件,那么我们就把它抽取出来放到这个公共大块里,这样就不会造成重复浪费。
而infinity是无限的意思,这就是说必须有无限多个大块都用到了这个js文件,我们才把它抽取出来放到这个公共大块里,很显然,不可能用任何js文件满足这个条件被无限多个大块使用,所以这里生成的其实就是一个空的大块,它只有一个文件名,而文件长度是0,这就是minChunks: Infinity的作用。
2 回答930 阅读✓ 已解决
2 回答961 阅读
1 回答998 阅读
845 阅读
611 阅读
minChunks 为 Infinity 的时候就是单纯创建这个文件,什么都不干嘛。
这里是为了保证 vendor entry 里的模块都只放在 vendor.js 里。
比如假设你后面又提取一遍 common chunks,叫 com1,minChunks 设为 2,恰好有两个模块里引用了 jquery,但 com1 并不会把 jquery 打包进去。