当前位置:网站首页 > C++编程 > 正文

webpack5代码分离

一,实际开发的使用

主要就是上文中的第四步,动态导入。

二,默认配置

Webpack 提供了代码分离的特性,默认是将 异步代码 按照以下方式进行代码分离的:

module.exports = { 
    //... optimization: { 
    splitChunks: { 
    chunks: 'async', // 同步 or 异步,这里是异步 minSize: 20000, // 如果模块大小小于这个值,则不会被分割 20k minRemainingSize: 0, // 最小可保存大小,开发模式下为 0,其他情况下等于 minSize,一般不用手动配置 minChunks: 1, // 如果模块被引用次数小于这个值,则不会被分割 maxAsyncRequests: 30, // 异步模块,一次最多被加载的次数 maxInitialRequests: 30, // 入口模块最多被加载的次数 enforceSizeThreshold: 50000, // 强制分割的大小阈值 50k cacheGroups: { 
    // 缓存组 // 打包第三方库 defaultVendors: { 
    test: /[\\/]node_modules[\\/]/, // 正则匹配第三方库文件 priority: -10, // 优先级 reuseExistingChunk: true, // 如果一个模块已经被打包过了,那么这个模块也不会被打包 }, // 打包公共模块 default: { 
    minChunks: 2, // 被超过两个模块引用,才会被打包 priority: -20, // 优先级 reuseExistingChunk: true, // 如果一个模块已经被打包过了,那么这个模块也不会被打包 }, }, }, }, }; 

三, 同步代码的处理

但显然这对于同步代码是无能为力的,于是我们这样设置:将 optimization.splitChunks.chunks 的值设置为 all ,它表示:不管同步还是异步,都会进行代码分离,但是请注意,如果你的共用模块不属于第三方库(也就是不能在 node_modules 中找到),而属于你自己写的一些代码模块,这些代码就会按照 cacheGroups 下的 default 配置打包。如果属于第三方库,就按照 cacheGroups 下的 defaultVendors 配置打包。

module.exports = { 
    //... optimization: { 
    splitChunks: { 
    chunks: 'all', // 同步或异步 minSize: 100, // 自己设置最小分割大小 cacheGroups: { 
    // 缓存组 // 打包第三方库 defaultVendors: { 
    test: /[\\/]node_modules[\\/]/, // 正则匹配第三方库文件 priority: -10, // 优先级 reuseExistingChunk: true, // 如果一个模块已经被打包过了,那么这个模块也不会被打包 filename: 'vendors.js' // 打包后的文件名 }, // 打包公共模块 default: { 
    minChunks: 2, // 被超过两个模块引用,才会被打包(可以去掉) priority: -20, // 优先级 reuseExistingChunk: true, // 如果一个模块已经被打包过了,那么这个模块也不会被打包 filename: 'common.js' // 打包后的文件名 }, }, }, }, }; 

四,我在项目中的配置

optimization: { 
    ...//其他配置 splitChunks: { 
    chunks: 'all', // 同步或异步 // minSize: 100, // 自己设置最小分割大小 cacheGroups: { 
    // 缓存组 // 打包第三方库 defaultVendors: { 
    test: /[\\/]node_modules[\\/]/, // 正则匹配第三方库文件 priority: -10, // 优先级 reuseExistingChunk: true, // 如果一个模块已经被打包过了,那么这个模块也不会被打包 name: 'vendors' // 打包后的文件名 }, // 打包公共模块 default: { 
    minChunks: 2, // 被超过两个模块引用,才会被打包(可以去掉) priority: -20, // 优先级 reuseExistingChunk: true, // 如果一个模块已经被打包过了,那么这个模块也不会被打包 }, }, } } 
到此这篇webpack5代码分离的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • webpack5配置代码分包2024-12-02 12:36:08
  • mac book安装nvm2024-12-02 12:36:08
  • uni-clould常用笔记2024-12-02 12:36:08
  • 《第一行代码》 第二章:探究活动Activity2024-12-02 12:36:08
  • canvas画笔功能的实现2024-12-02 12:36:08
  • Vant中List组件immediate-check=false无效2024-12-02 12:36:08
  • Mac环境配置Tomcat2024-12-02 12:36:08
  • cesium切换图层及初始时定位至中国2024-12-02 12:36:08
  • Cesium鼠标移出地图控件时执行相应操作2024-12-02 12:36:08
  • Cesium绘制矩形2024-12-02 12:36:08
  • 全屏图片