Webpack5 cacheGroups
文章目录
- 一、 cacheGroups是什么?
- 二、怎么使用cacheGroups?
- 三、cacheGroups实际应用之一?
一、 cacheGroups是什么?
在Webpack 5中,cacheGroups是用于配置代码拆分的规则,它可以帮助你更细粒度地控制生成的代码块。
作用:
- 将依赖项(第三方库)从应用代码中抽离出来,提高构建速度。
- 将应用代码按照自定义的规则拆分成不同的代码块,实现按需加载,减小初始加载的文件大小。
二、怎么使用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中的规则。
相关文章:
Webpack5 cacheGroups
文章目录 一、 cacheGroups是什么?二、怎么使用cacheGroups?三、cacheGroups实际应用之一? 一、 cacheGroups是什么? 在Webpack 5中,cacheGroups是用于配置代码拆分的规则,它可以帮助你更细粒度地控制生成…...
前端面试的游览器部分(5)每篇10题
41.什么是浏览器的同步和异步加载脚本的区别?你更倾向于使用哪种方式,并解释原因。 浏览器的同步和异步加载脚本是两种不同的脚本加载方式,它们的主要区别在于加载脚本时是否阻塞页面的解析和渲染。 同步加载脚本: 同步加载脚本…...
数据挖掘七种常用的方法汇总
数据挖掘(Data Mining)就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。这个定义包括几层含义:数据源必须是真实的、大量的、含噪声的;发现的是用户…...
自然语言处理学习笔记(二)————语料库与开源工具
目录 1.语料库 2.语料库建设 (1)规范制定 (2)人员培训 (3)人工标注 3.中文处理中的常见语料库 (1)中文分词语料库 (2)词性标注语料库 (3…...
Rust dyn - 动态分发 trait 对象
dyn - 动态分发 trait 对象 dyn是关键字,用于指示一个类型是动态分发(dynamic dispatch),也就是说,它是通过trait object实现的。这意味着这个类型在编译期间不确定,只有在运行时才能确定。 practice tr…...
uniapp 中过滤获得数组中某个对象里id:1的数据
// 假设studentData是包含多个学生信息的数组 const studentData [{id: 1, name: 小明, age: 18},{id: 2, name: 小红, age: 20},{id: 3, name: 小刚, age: 19},{id: 4, name: 小李, age: 22}, ]; // 过滤获取id为1的学生信息 const result studentData.filter(item > ite…...
Django系列之Channels
1. Channels 介绍 Django 中的 HTTP 请求是建立在请求和响应的简单概念之上的。浏览器发出请求,Django服务调用相应的视图函数,并返回响应内容给浏览器渲染。但是没有办法做到 服务器主动推送消息给浏览器。 因此,WebSocket 就应运而生了。…...
HTTP——五、与HTTP协作的Web服务器
HTTP 一、用单台虚拟主机实现多个域名二、通信数据转发程序 :代理、网关、隧道1、代理2、网关3、隧道 三、保存资源的缓存1、缓存的有效期限2、客户端的缓存 一台 Web 服务器可搭建多个独立域名的 Web 网站,也可作为通信路径上的中转服务器提升传输效率。…...
pyspark笔记 Timestamp 类型的比较
最近写pyspark遇到的一个小问题。 假设我们有一个pyspark DataFrame叫做dart 首先将dart里面timestamp这一列转化成Timestamp类型 dartdart.withColumn(timestamp,col(timestamp).cast(TimestampType()))查看timestamp的前5个元素 dart.select(timestamp).show(5,truncateFal…...
SpringBoot 集成 Redis
本地Java连接Redis常见问题: bind配置请注释掉保护模式设置为noLinux系统的防火墙设置redis服务器的IP地址和密码是否正确忘记写访问redis的服务端口号和auth密码 集成Jedis jedis是什么 Jedis Client是Redis官网推荐的一个面向java客户端,库文件实现…...
黑客学习笔记(网络安全)
一、首先,什么是黑客? 黑客泛指IT技术主攻渗透窃取攻击技术的电脑高手,现阶段黑客所需要掌握的远远不止这些。 以前是完全涉及黑灰产业的反派角色,现在大体指精通各种网络技术的程序人员 二、为什么要学习黑客技术?…...
[openCV]基于拟合中线的智能车巡线方案V1
import cv2 as cv import os import numpy as np# 遍历文件夹函数 def getFileList(dir, Filelist, extNone):"""获取文件夹及其子文件夹中文件列表输入 dir:文件夹根目录输入 ext: 扩展名返回: 文件路径列表"""newDir d…...
MyBatis-Plus 和达梦数据库实现高效数据持久化
一、添加依赖 首先,我们需要在项目的 pom.xml 文件中添加 MyBatis-Plus 和达梦数据库的依赖: <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifac…...
已注销【888】
元神密码 - 飞书云文档 (feishu.cn)...
Ceph错误汇总
title: “Ceph错误汇总” date: “2020-05-14” categories: - “技术” tags: - “Ceph” - “错误汇总” toc: false original: true draft: true Ceph错误汇总 1、执行ceph-deploy报错 1.1、错误信息 ➜ ceph-deploy Traceback (most recent call last):File "/us…...
DataTable过滤某些数据
要过滤DataTable中的某些数据,可以使用以下方法: 使用Select方法:可以使用DataTable的Select方法来筛选满足指定条件的数据行。该方法接受一个字符串参数作为过滤条件,返回一个符合条件的数据行数组。 DataTable filteredTable …...
JAVASE---继承和多态
继承 比如,狗和猫,它们都是一个动物,有共同的特征,我们就可以把这种特征抽取出来。 像这样把相同的可以重新放到一个类里面,进行调用,这就是继承。 概念 继承(inheritance)机制:是面向对象程…...
Centos7升级gcc、g++版本(转载)
Centos7默认的 gcc版本是 4.8.5 默认使用yum install gcc安装出来的gcc版本也是是4.8.5。 1.首先查看自己的 gcc 版本 gcc -v g -v如果出现:bash: g: 未找到命令... 则安装g:遇到暂停时,输入y继续安装 yum install gcc-c然后输入…...
第一章:继承
系列文章目录 文章目录 系列文章目录前言继承的概念及定义继承的概念继承定义定义格式继承关系和访问限定符继承基类成员访问方式的变化 基类和派生类对象赋值转换(公有继承)继承中的作用域派生类的默认成员函数继承与友元继承与静态成员不能被继承的类复…...
git面试题
文章目录 git经常用哪些指令git出现代码冲突怎么解决你们团队是怎么管理git分支的如何实现Git的免密操作 git经常用哪些指令 产生代码库 新建一个git代码库 git init下载远程项目和它的整个代码历史 git clone 远程仓库地址配置 显示配置 git config --list [--global]编辑配置…...
提示工程(Prompt Engineering)完整指南:从原子结构到工业级实践——AI智能体开发实战
提示工程不是“写好一句话让AI听话”,而是在模型能力边界内构建可复现、可验证、可演进的人机契约系统。它融合语言学建模、认知心理学、软件工程与领域知识,是当前大模型落地最核心的底层能力。以下按概念解构 → 结构拆解 → 技术分层 → 场景映射 → …...
智能代码生成器版本演进全景图(2022–2024核心算法对比白皮书)
第一章:智能代码生成器版本演进全景图(2022–2024核心算法对比白皮书) 2026奇点智能技术大会(https://ml-summit.org) 从模板驱动到语义理解的范式跃迁 2022年初代系统以规则引擎预置模板为核心,依赖显式语法树匹配与硬编码上下…...
从Netflix开源到行业标准:VMAF模型训练与自定义实战指南
从Netflix开源到行业标准:VMAF模型训练与自定义实战指南 在视频流媒体行业,内容质量评估一直是技术团队面临的核心挑战之一。Netflix开源的VMAF(Video Multi-method Assessment Fusion)工具已经成为业界广泛认可的视频质量评估标准…...
【2026年最新600套毕设项目分享】宠物微信小程序(30100)
有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 项目演示视频2 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运…...
Visual C++ Redistributable AIO:一站式解决Windows DLL依赖问题的最佳方案
Visual C Redistributable AIO:一站式解决Windows DLL依赖问题的最佳方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经在运行某些软件时…...
如何用 event.composedPath 获取事件触发经过的所有节点
event.composedPath()用于获取事件在Shadow DOM中的完整传播路径,返回从目标节点到根节点的数组;适用于Web Components中跨Shadow边界精准判断事件来源或委托。event.composedPath() 是一个用于获取事件在 Shadow DOM 中传播路径的方法,它返回…...
【AGI意识觉醒倒计时】:基于217项跨模态意识指标的预测模型显示——2027.03±47天为概率峰值
第一章:AGI意识觉醒倒计时:217项跨模态指标与概率峰值的科学共识 2026奇点智能技术大会(https://ml-summit.org) 跨模态意识评估框架的实证基础 217项指标并非主观枚举,而是基于全球14个顶尖AGI研究团队(含DeepMind、OpenAI Ali…...
告别Overleaf!在VS Code里用LaTeX Workshop写论文的保姆级配置(含环境变量、PDF同步、Snippets)
告别Overleaf!在VS Code里用LaTeX Workshop写论文的保姆级配置 如果你正在写学术论文或技术报告,大概率已经受够了在线LaTeX编辑器的种种限制——网络延迟导致的卡顿、功能阉割带来的不便,或是隐私泄露的潜在风险。今天,我们将彻底…...
微软为什么发明 SqlLocalDB?命令行直接启动,0配置成本
微软为什么发明 SqlLocalDB(2012 首发,Denali 项目原生目标) 1. 前代产品全部无解的历史痛点(核心根源) 在 LocalDB 诞生前,微软桌面本地数据库有三套方案,全部有致命缺陷,开发体验…...
Zotero-OCR插件高级配置与常见问题深度解析
Zotero-OCR插件高级配置与常见问题深度解析 【免费下载链接】zotero-ocr Zotero Plugin for OCR 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-ocr Zotero-OCR作为文献管理工具Zotero的核心OCR扩展插件,为学术研究者和技术用户提供了将扫描PDF转换为…...
