假设有下面三种场景

场景一:index.js 和 other.js 文件同时引入 common.js 文件,打包的时候 index.js 和 other.js 中的 common.js 会打包两次。这种情况如何处理?

场景二:index.js 和 other.js 两个文件同时引入第三方模块 lodash,若 lodash 体积过大,每次打包会打两次。这种情况又如何处理?

场景三:index.js 和 other.js 两个文件同时引入第三方模块 lodash,若每次对 index.js 或 other.js 做了很微小的修改,再次打包时 lodash 又莫名其妙的打包两次。针对这种浪费资源的情况应该如何处理?

以上三种场景,都会被动的把公共代码 或 第三方库 打包多次,导致打包出来的代码体积过大,浪费资源,所以要把公共代码或第三方库单独抽离出来。抽离后,如果公共代码没有修改,再次打包时,直接命中缓存,不会再次打包。

配置一:splitChunks 分割代码块

相关属性

  • priority:1 抽离权限,数字越大,越优先抽离
  • minSize:0 公共模块的大小,超过设置的值,代表抽离
  • minChunks:1 最少复用的次数,若引用超过一次,对该模块抽离

配置二:chunk 的引用

chunks:[] 代表该页面需要分割的哪些代码块

打包后的 dist 文件内,会生成 common.js 和 vendor.js 文件,此时包被拆开。之后,若公共模块代码未修改,则不会被再次打包。

webpack 如何抽离公共代码和第三方库?相关推荐

  1. Webpack 4.X 从入门到精通 - 第三方库(六)

    在开发的时候会时常用到第三方的库或者框架,比如耳熟能详的jquery.借助它们能提高开发效率,但是如何在webpack中使用呢.这篇文章介绍两个东西,如何使用第三方库以及如何提取第三方库. 使用第三方 ...

  2. Python爬虫仅需一行代码----crawl第三方库

    仅需一行代码写爬虫–simple_crawl simple_crawl 仅需一行代码即可达到爬虫效果 项目地址(欢迎star):https://github.com/Amiee-well/crawl ...

  3. IOS常用代码总结 - 第三方库部分

    1 SBJson的使用 JSON是一种数据交换语言,和XML是同样用途的.不过JSON的体积要比XML小,也就意味着在网络传输中 速度会比XML更快. 这里可以看到更多关于json的资料:http:/ ...

  4. 【python】python翻译的代码和第三方库

    背景 在项目中需要对文本进行翻译:中转英居多,希望采用自动化的方式实现. 解决 参考 """有道翻译API的调用函数(封装为一个函数使用)""&quo ...

  5. 引入三方库_关于使用第三方库、代码复用的一些思考

    选择 优质文章,及时送达 作者:xybaby 链接:cnblogs.com/xybaby/p/11372846.html 正文 不管是不要重复造轮子,还是站在巨人的肩膀上,对于软件开发来说,代码复用都 ...

  6. 利用DllPlugin分割你的第三方库

    前言 小站利用React全家桶开发,在上线之后,发现第三方bundle(2Mb左右)下载用了近20秒. 最初发现的问题是nginx压缩配置gzip没有添加application/javascript这 ...

  7. android qq分组展开,Android仿qq分组管理的第三方库

    本文实例为大家分享了Android仿qq分组管理的第三方库,供大家参考,具体内容如下 下面先看效果 我们点击展开与折叠分组的功能在库里面是已经封装好的,只能把它已入到项目中,就可以直接用了,十分的方便 ...

  8. 介绍一个仿qq分组管理的第三方库

    下面先看效果 我们点击展开与折叠分组的功能在库里面是已经封装好的,只能把它已入到项目中,就可以直接用了,十分的方便. 下面直接上核心代码 首先定义分组的对象,相当于上面红色字体的对象,跟分组下每个it ...

  9. The way of Webpack learning (II.) -- Extract common code(多页面提取公共代码)

    学习之路基于webpack3.10.0,webpack4.0之后更新. 多页面提取公共代码!!! 一:文件关系 pageA --> subA.subB --> moduleA pageB ...

最新文章

  1. 跨模态学习在三维语义分割领域适应中的应用
  2. git版本回退命令_Git学习版本回退和管理文件的修改及删除操作
  3. 网络位置可以看到另一个人的电脑_计算机组成原理(一)- 冯·诺依曼体系结构...
  4. JavaScript学习总结(六)——JavaScript判断数据类型总结
  5. [Java基础][Java]toString()方法
  6. WinCE6.0中应用程序如何直接访问物理空间
  7. macOS Mojave 升级到macOS Monterey
  8. 【Kafka】Kafka No serviceName defined in either JAAS or Kafka config
  9. AndroidStudio安卓原生开发_Activity的概念和简单使用_创建Activity_创建Layout资源文件_给Activity引入资源Id---Android原生开发工作笔记80
  10. 将视图状态存入数据库(3)
  11. Java并发——Synchronized关键字和锁升级,详细分析偏向锁和轻量级锁的升级
  12. JavaWeb实现的超市收银、基于SSM+mysql的 vue便利店收银管理系统实现【文档】【代码过程】
  13. Base-calling for next-generation sequencing platforms (译文)
  14. 存储过程实现报表数据源的利弊分析
  15. 【Scala】Scala中的模式匹配、类型参数与隐式转换
  16. python h5py 创建无限数据集、在无限数据集上添加新的数据
  17. 2017-4-6 四月生花,冷暖自知
  18. 【无标题】26-时尚精品服饰网店响应式网页模板
  19. 香港虚拟主机空间哪个好?
  20. 不同的国家/地区与语言缩写代码

热门文章

  1. 数字摄影测量复习总结
  2. 手机 html自动播放视频格式,Video 在网页和移动端无法自动播放问题??
  3. MVC 网上花店销售系统的设计与实现java jsp 程序设计 课程设计 毕业设计-附源码02140
  4. IDEA Ctrl+Alt+左右键失效
  5. React(二):jsx事件绑定、条件渲染、列表渲染、jsx的本质、购物车案例
  6. sdut算法分析oj题目整合
  7. 程序员与程序员的差距,正在业余时间中慢慢积累
  8. 【哈佛精神】业余时间
  9. kindle降级卡大树_从提示框:Kindle购物流程图,iOS降级和DIY焊接笔
  10. 青少年机器人等级考试三级考什么