webpack打包的过程种,生成的JS文件,每一个JS文件我们都把它叫做Chunk。
我们可以看下打包的过程

image.png
main.js的chunk Name是mainvendors~lodash.js的chunk Name是vendors~lodash所以,每个JS文件,实际上都是
Chunk
Chunk有什么意义呢?
假设我们配置的minChunks是2

image.png
假设我们要引入lodash这个第三方的库,那么到底要不要对它进行代码分割呢?可以比对它是否符合我们的配置条件
lodash对于chunks和minSize配置都是满足的,但是它能不能满足minChunks呢?怎么来判断呢? 假设我们整个项目打包运行过后,在dist目录下会生成很多个Chunk文件,那如果有2个以上的文件需要lodash,那么就需要对lodash进行Code Spliting,也就是单独生成一个lodash.js这样的文件来实现代码分割。
假如生成的多个Chunk文件 ,只有一个Chunk文件用到了lodash这个库,而我们的minChunks是2,那么lodash就不会被代码分割。
还有就是,一般情况下,我们只需要配置chunks为all就可以啦

image.png
因为当我们不配置其他的时候,其他配置就是默认项。
chunks默认值是async,如果我们想同步和异步的都进行代码分割,需要改为all;如果就是想要做自己风格的代码分割的话,可以去进行详细配置。