webpack4之splitChunks.cacheGroups

概要

cacheGroups即缓存组,其中的每一项缓存组都可以继承/覆盖之前提到的splitChunks参数值(如name、maxSize、minSize、maxInitialRequests、maxAsyncRequests等),除此之外还额外提供了三个配置,分别为:test, priority 和 reuseExistingChunk。

  • test: 表示要过滤 modules,默认为所有的 modules,可匹配模块路径或 chunk 名字,当匹配到某个 chunk
    的名字时,这个chunk里面引入的所有 module 都会选中;
  • priority:权重,数字越大表示优先级越高。一个 module 可能会满足多个 cacheGroups 的正则匹配,到底将哪个缓存组应用于这个module,取决于优先级;
  • reuseExistingChunk:表示是否使用已有的 chunk,true 则表示如果当前的 chunk 包含的模块已经被抽取出去了,那么将不会重新生成新的,即几个chunk复用被拆分出去的一个module;

除了上面的的属性,缓存组还有两个属性——filename和enforce:

  • filename: 这个属性会覆盖output.filename这个属性,前提是chunks设为initial。同时,这个属性也能全局设置,比如splitChunks.filename,但是如果chunks设为非initial,webpack将会报错,所以官方建议这个属性不全局设置。
  • enforce: 布尔类型,默认为false。当设为true时,webpack会忽略splitChunks.minSize、splitChunks.minChunks、splitChunks.maxAsyncRequests、splitChunks.maxInitialRequests这几个配置项,并且只要某个缓存组设置了enforce为true,匹配的模块就会忽略前面提到的那几个属性,即使有其他的缓存组匹配同样的模块,也没有设置enforce,同时优先级比设置了enforce的高,enforce: true仍然有效。

案例

由于时间问题,暂且搁置一下。

last(最后)
非常感谢您能阅读完这篇文章,您的阅读是我不断前进的动力。如果上述内容或许有些错误或者有些个人理解比较偏离实际,还望指出,谢谢!!!

对于上面所述,有什么新的观点或发现有什么错误,希望您能指出。

最后,附上个人常逛的社交平台:
知乎:https://www.zhihu.com/people/bi-an-yao-91/activities
csdn:https://blog.csdn.net/YaoDeBiAn
github: https://github.com/yaodebian

个人目前能力有限,并没有自主构建一个社区的能力,如有任何问题或想法与我沟通,请通过上述某个平台联系我,谢谢!!!

发布了80 篇原创文章 · 获赞 91 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/YaoDeBiAn/article/details/104144548
今日推荐