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

前端性能优化三十一:花裤衩模板webpack DllPlugin

2. Webpack社区有两种方案:

. CommonsChunkPlugin:a. webpack每次打包还需要去处理这些第三方库.b. 只是打包完后,能把第三方库和自己的代码分开,相当于单独打包第三方库.. DLL(动态链接库):a. 指一个包含可由多个程序同时使用的代码库:(1). 借鉴了Windows系统的dll。一个dll包,就是一个纯纯的依赖库,它本身不能运行,是用来给你的app引用的。b. 前端领域可认为是另类缓存:(1). 把公共代码打包为DLL文件并存到硬盘里.(2). 再次打包时,动态链接DLL文件就无需再次打包那些公共代码.(3). 从而提升构建速度,减少打包时间.. DLL优化:a. 是一种最简单粗暴且极其有效的优化方式.b. 第三方库预先处理,实现了拆分bundles,后续打包不放入vendor.js中.c. 通过DllPlugin插件分离出第三方包:(1). 配置DllPlugin将第三方依赖提前打包(2). 好处是将DLL与业务代码完全分离且每次只构建业务代码.d. DLL优化分为3个步骤:(1). 告知构建脚本哪些依赖做成DLL(2). 预处理第三方库,生成DLL文件.(2). 告诉webpack打包时,不需要处理这些第三方库. => DLL映射表文件e. webpack v4+已不推荐使用该配置,因为其版本迭代带来的性能提升足以忽略DllPlugin所带来的效益.

(1). DLL两个工具:

. DllPlugin:a. 这个插件是在一个额外的独立的webpack设置中创建一个只有dll的bundle(dll-only-bundle).b. 会生成一个名为manifest.json的文件,这个文件是用来让DLLReferencePlugin映射到相关的依赖上去的.c. DLLPlugin能把第三方代码完全分离开,即每次只打包项目自身的代码.. DllReferencePlugin:a. webpack主配置文件中设置的.b. 这个插件将dll的bundle(dll-only-bundle(s))引用到需要的预编译的依赖.c. 通过引用dll的manifest.json文件,将依赖的名称映射到模块的id上,在需要时通过内置的webpack_require函数来require.

相关文章:

  • 【JVM】虚拟机栈与本地方法栈
  • redis—String字符串
  • 【unity学习笔记】3.常用结构体
  • MyBatis——MyBatis的缓存
  • TrustZone之与非安全虚拟化交互
  • docker-compose 安装Sonar并集成gitlab
  • 构造LR(1)分析表和LALR(1)分析表
  • 晶闸管(Thyristor)
  • 【数据结构和算法】找到最高海拔
  • 2023.12.24力扣每日一题——收集足够苹果的最小花园周长
  • 搭建react+ant design pro+umi 项目框架
  • 自动驾驶中的“雷达”
  • 使用代码生成器生成代码 mybatis-plus-generator
  • 酷开科技,斩获“2023年度广告主金伙伴”等重量级奖项
  • Maven仓库依赖导入‘.lastUpadate‘问题解决
  • ES6核心特性
  • GitUp, 你不可错过的秀外慧中的git工具
  • Java小白进阶笔记(3)-初级面向对象
  • Laravel核心解读--Facades
  • leetcode讲解--894. All Possible Full Binary Trees
  • SpingCloudBus整合RabbitMQ
  • windows-nginx-https-本地配置
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 计算机在识别图像时“看到”了什么?
  • 聊聊directory traversal attack
  • 新手搭建网站的主要流程
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • #### go map 底层结构 ####
  • #{} 和 ${}区别
  • #14vue3生成表单并跳转到外部地址的方式
  • #define,static,const,三种常量的区别
  • #pragma pack(1)
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (13):Silverlight 2 数据与通信之WebRequest
  • (二)学习JVM —— 垃圾回收机制
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (一)u-boot-nand.bin的下载
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转) 深度模型优化性能 调参
  • (转载)虚函数剖析
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • [BZOJ 3282] Tree 【LCT】
  • [BZOJ2208][Jsoi2010]连通数
  • [C/C++]数据结构----顺序表的实现(增删查改)
  • [C++核心编程](四):类和对象——封装
  • [GYCTF2020]Ez_Express
  • [HTML]HTML5实现可编辑表格
  • [Linux] 进程间通信基础
  • [NET].NET Framework 3.5 SP1 真正的离线安装(转)