代码分割本身和 webpack 没有什么关系,但是由于使用 webpack 可以非常轻松地实现代码分割,所以提到代码分割首先就会想到使用 webopack 实现。
在 webpack 中是使用 SplitChunksPlugin 来实现的,由于 SplitChunksPlugin
配置参数众多,接下来就来梳理一下这些配置参数。
官网上的默认配置参数如下:
module.exports = { //... optimization: { splitChunks: { chunks: 'async', // 代码分割时对异步代码生效,all:所有代码有效,inital:同步代码有效 minSize: 30000, // 代码分割最小的模块大小,引入的模块大于 30000B 才做代码分割 maxSize: 0, // 代码分割最大的模块大小,大于这个值要进行代码分割,一般使用默认值 minChunks: 1, // 引入的次数大于等于1时才进行代码分割 maxAsyncRequests: 6, // 最大的异步请求数量,也就是同时加载的模块最大模块数量 maxInitialRequests: 4, // 入口文件做代码分割最多分成 4 个 js 文件 automaticNameDelimiter: '~', // 文件生成时的连接符 automaticNameMaxLength: 30, // 自动生成的文件名的最大长度 cacheGroups: { vendors: { test: /[\\/]node_modules[\\/]/, // 位于node_modules中的模块做代码分割 priority: -10 // 根据优先级决定打包到哪个组里,例如一个 node_modules 中的模块进行代码 }, // 分割,,既满足 vendors,又满足 default,那么根据优先级会打包到 vendors 组中。 default: { // 没有 test 表明所有的模块都能进入 default 组,但是注意它的优先级较低。 priority: -20, // 根据优先级决定打包到哪个组里,打包到优先级高的组里。 reuseExistingChunk: true // //如果一个模块已经被打包过了,那么再打包时就忽略这个上模块 } } } } };
补充几点:
在分组中可以人为地规定打包后文件的名字,在 vendor 分组中添加 filename = "vendor.js"
之后,在 vendor 分组中打包后文件的名字都是 vendor.js 。
reuseExistingChunk
实例讲解:
// a.js import b from './b'; // index.js import a from './a'; import b from './b';
在上述代码中,index.js 在执行 import a from './a' 时引入 a 模块,由于 a 模块中使用了 b 模块,所以同时也引入了 b 模块。再执行 import b from './b' 时,由于 b 模块已经被打包过了,所以就会忽略掉这个 b 模块,这就是 reuseExistingChunk: true 的作用。
如果想让两个模块打包到一个文件里应该如何实现?
cacheGroup 就可以实现这个需求,假设有两个模块 module1 和 module2,且都满足 vendor 这个组,那么在进行代码分割时,会先将 module1 放到 CacheGroup 中,然后再将 module2 放到 cacheGroup 中,最后再将两者一起放到 vender 组里生成 vender.js 文件。
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 纯音入心系列纯音乐《中央民族乐团-古筝传奇》1CD[MP3][253.1MB]
- 江玲.1989-这样你才爱我,是吗?【新作有声】【WAV+CUE】
- 郭美美.2010-我是郭美美【华纳】【WAV+CUE】
- 黄心懋1991-轻忧郁【滚石】【WAV+CUE】
- 群星.2000-大地金曲世纪回顾2CD【大地】【WAV+CUE】
- 王菲.1996-浮躁(2024环球MQA-UHQCD限量版)【环球】【WAV+CUE】
- 群星.2022-传家电视剧原声带【东阳欢娱】【FLAC分轨】
- 《摇滚教父 伍佰黄金精选 2CD》 [WAV+CUE][1GB]
- 《凤凰传奇 我从草原来》[WAV/分轨][400MB]
- 《叶倩文 真心真意过一生》[WAV+CUE][400MB]
- 潘越云.1985-世间女子(滚石25周年经典复刻版)【滚石】【WAV+CUE】
- 陈柏宇.2009-CANT.BE.HALF【SONY】【WAV+CUE】
- 李明依.1989-小女生【滚石】【WAV+CUE】
- 《李荣浩 新时代创作新人王》[WAV分轨][310MB]
- 《黑鸭子与马头琴 史上最动听草原音乐》[WAV+CUE][320MB]