当前位置: 首页 > news >正文

Webpack5 cacheGroups

文章目录

  • 一、 cacheGroups是什么?
  • 二、怎么使用cacheGroups?
  • 三、cacheGroups实际应用之一?


一、 cacheGroups是什么?

在Webpack 5中,cacheGroups是用于配置代码拆分的规则,它可以帮助你更细粒度地控制生成的代码块。

作用:

  1. 将依赖项(第三方库)从应用代码中抽离出来,提高构建速度。
  2. 将应用代码按照自定义的规则拆分成不同的代码块,实现按需加载,减小初始加载的文件大小。

二、怎么使用cacheGroups?

具体用法:
在webpack.config.js中的optimization.splitChunks.cacheGroups对象中配置:

module.exports = {// ...其他配置optimization: {splitChunks: {cacheGroups: {group1: {test: /pattern/,name: 'group1',chunks: 'initial',enforce: true},group2: {test: /pattern/,name: 'group2',chunks: 'all',enforce: true}}}}
}

具体参数解释:

  • test: 用于匹配模块的正则表达式。
  • name: 指定生成的代码块的名称。
  • chunks: 指定应该包含哪些类型的代码块。可选值有initial(初始代码块)、async(按需加载的代码块)和all(所有代码块)。
  • enforce: 设置为true时,强制生成该代码块,即使它可能已经满足了其他的缓存组规则。

通过合理配置cacheGroups,可以根据项目需求将代码拆分成不同的块,提高构建速度和应用的加载性能。

三、cacheGroups实际应用之一?

 libs: {name: "chunk-libs",test: /[\\/]node_modules[\\/]/,priority: 10, // 权重最低,优先考虑前面内容chunks: "initial",},

在Webpack 5中,cacheGroups是用于配置优化代码分割的选项之一。这段代码定义了一个名为"libs"的cacheGroup。

  • name: "chunk-libs"指定了该cacheGroup输出的chunk的名称。
  • test: /[\/]node_modules[\/]/表示只有当模块来自于node_modules目录时,才会被打包到该chunk中。
  • priority: 10指定了该cacheGroup的优先级,值越大,优先级越高。这意味着其他cacheGroup中定义的规则优先级低于该规则,所以在判断模块属于哪个cacheGroup时,会先考虑该规则。
  • chunks: "initial"表示只将初始的chunk(即入口chunk)打包到该cacheGroup中。

综上所述,这段代码的作用是将来自于node_modules目录且属于初始chunk的模块打包到一个名为"chunk-libs"的chunk中,并且该cacheGroup具有最低的优先级(权重最低),优先考虑其他cacheGroup中的规则。

http://www.lryc.cn/news/107561.html

相关文章:

  • 前端面试的游览器部分(5)每篇10题
  • 数据挖掘七种常用的方法汇总
  • 自然语言处理学习笔记(二)————语料库与开源工具
  • Rust dyn - 动态分发 trait 对象
  • uniapp 中过滤获得数组中某个对象里id:1的数据
  • Django系列之Channels
  • HTTP——五、与HTTP协作的Web服务器
  • pyspark笔记 Timestamp 类型的比较
  • SpringBoot 集成 Redis
  • 黑客学习笔记(网络安全)
  • [openCV]基于拟合中线的智能车巡线方案V1
  • MyBatis-Plus 和达梦数据库实现高效数据持久化
  • 已注销【888】
  • Ceph错误汇总
  • DataTable过滤某些数据
  • JAVASE---继承和多态
  • Centos7升级gcc、g++版本(转载)
  • 第一章:继承
  • git面试题
  • Github Copilot在JetBrains软件中登录Github失败的解决方案
  • 使用 github 同步谷歌浏览器书签
  • Eclipse进行debug
  • 13-5_Qt 5.9 C++开发指南_基于信号量的线程同步_Semaphore
  • golang使用泛型实现mapreduce操作
  • 2023华数杯数学建模C题思路分析 - 母亲身心健康对婴儿成长的影响
  • 【汇总】解决Ajax请求后端接口,返回ModelAndView页面不跳转
  • 网络安全进阶学习第九课——SQL注入介绍
  • 一个计算机专业的学生数据结构这门课学到什么程度才能算学的还不错?
  • [语义分割] ASPP不同版本对比(DeepLab、DeepLab v1、DeepLab v2、DeepLab v3、DeepLab v3+、LR-ASPP)
  • anaconda创建虚拟环境在D盘