webpack
打包的过程种,生成的JS文件
,每一个JS文件
我们都把它叫做Chunk
。
我们可以看下打包的过程
main.js
的chunk Name
是main
vendors~lodash.js
的chunk Name
是vendors~lodash
所以,每个JS文件,实际上都是
Chunk
Chunk
有什么意义呢?
假设我们配置的minChunks
是2
假设我们要引入lodash
这个第三方的库,那么到底要不要对它进行代码分割呢?可以比对它是否符合我们的配置条件
lodash
对于chunks和minSize配置都是满足的,但是它能不能满足minChunks
呢?怎么来判断呢? 假设我们整个项目打包运行过后,在dist
目录下会生成很多个Chunk
文件,那如果有2个以上的文件需要lodash
,那么就需要对lodash
进行Code Spliting
,也就是单独生成一个lodash.js
这样的文件来实现代码分割。
假如生成的多个Chunk
文件 ,只有一个Chunk
文件用到了lodash
这个库,而我们的minChunks
是2,那么lodash
就不会被代码分割。
还有就是,一般情况下,我们只需要配置chunks
为all
就可以啦
因为当我们不配置其他的时候,其他配置就是默认项。
chunks
默认值是async
,如果我们想同步和异步的都进行代码分割,需要改为all;如果就是想要做自己风格的代码分割的话,可以去进行详细配置。