名医指导 足不出户寻医问药
聚焦健康 权威的健康资讯
您的位置: 首页> 正文

聊聊Webpack4 的 Tree Shaking

发布网友 发布时间:2024-10-24 12:14

我来回答

1个回答

热心网友 时间:2024-10-31 02:52

Webpack4 的 Tree Shaking 是一种代码优化策略,旨在通过静态分析 ES6 模块来消除无用的 JavaScript 代码,以减少文件体积,提高加载速度。其主要依赖 ES6 的 import 和 export 功能进行代码的静态分析,识别并消除未被使用的代码、未被引用的方法或只写不读的变量。

然而,Tree Shaking 在实际应用中并不总能完美发挥作用。例如,使用 antd、lodash 这类库时,Tree Shaking 通常无效,需要借助插件来实现按需加载。随着 Webpack 更加注重约定优于配置的原则,许多优化配置,包括 Tree Shaking,被 mode 属性取代。

在进行打包时,Tree Shaking 会失效在几种特定情况下。其中,export default 的使用是导致 Tree Shaking 失败的常见原因,因为这会导致模块以对象的形式打包,无法进行深入的静态分析。此外,函数存在副作用,如修改全局变量或修改外部变量,也会导致 Tree Shaking 无法识别并删除这些代码。

Webpack 打包类库时,由于浏览器不支持 import 和 export,因此无法直接进行 Tree Shaking。为了避免类库打包后的 Tree Shaking 失效,推荐将类库分解为多个单独的文件,每个文件包含一个特定的函数或模块,然后在引用时仅引入需要的函数。这样可以利用 Webpack 的优化功能,如 sideEffects 和 providedExports 配置,来控制哪些代码会被删除。

而使用 Rollup 打包类库,可以配置 output.format 为 es,生成符合 ES6 模块标准的代码,从而实现 Tree Shaking。尽管如此,Babel 在转换 ES6 代码时可能会引入副作用,导致 Tree Shaking 失效。解决这一问题的方法是在相关代码前添加 /*@PURE*/ 注释,表明该函数或方法没有副作用,便于 Tree Shaking 正确识别并删除无用代码。

Webpack4 通过 mode 参数自动激活了一系列优化选项,包括 Tree Shaking,从而简化了配置过程。优化选项如 optimization.providedExports、optimization.usedExports、optimization.concatenateModules 等,以及 TerserPlugin 插件,共同作用于代码压缩和冗余代码删除,实现代码优化。配置 sideEffects 为 false 可以将所有未使用的模块视为纯函数,避免因副作用而导致的代码保留。

总结而言,Webpack4 的 Tree Shaking 是一个强大的代码优化工具,能显著减少项目文件体积,提高性能。然而,在实际应用中,需要考虑特定的场景和限制,如类库的打包、Babel 转码副作用等,以充分利用 Tree Shaking 的优势。正确配置 Webpack 的相关选项,结合其他优化策略,可以更有效地实现代码优化,提升应用性能。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
山东沃尔德集团集团所辖公司介绍 齐鲁银行无忧贷和市民贷哪个好 什么叫补按揭 后按揭贷款什么意思 买房者续按揭有什么危害 加按揭是什么意思 八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 原地开空调伤车么 我的电脑是win7的,最近发现中了病毒,网络,回收站,计算机的图标变成文 ... 订做一套婚纱大概多少钱定制的婚纱要多长时间 你们好,听说永清开发区新建了初中学校了是吗? webpack 相关 永清五中高中口碑怎么样 岳阳中考300分左右能读什么学校 ...用试剂的名称或主要方法即可)(1)CaO(CaCO3)___;(2)CO2(CO)___百度... 北大青鸟什么时候放月假 NACL中混有极少量的KNO3时,为什么可以用蒸发结晶,难道KNO3就不会大量... NACL中混有极少量的KNO3时,为什么可以用蒸发结晶,难道KNO3就不会大量... ...方法除去下列物质中的少量杂质(括号内为杂质),用化学方程式表示.(1... ...杂质所用试剂和方法都正确的是( )A.NaCl (Na2CO3)---加稀盐酸,分液... ...少量杂质(括号内杂质),请将除去杂质所加的化学试剂的化学式填在... ...过程.(1)HCl(H2SO4)___(2)NaOH(Na2CO3)___(3)KNO3 微前端框架 之 qiankun 从入门到源码分析 除去下列物质中的少量杂质(括号内是杂质),从硝酸钡溶液、碳酸钠溶液... 如何将KNO3和少量NaCl的混合物中分离出较纯净的KNO3晶体 ...少量杂质,写出除杂的试剂和发生反应的化学方程式:物质(杂质)加入试剂... 微前端技术方案--技术验证(qiankun & wujie) 电脑开机后会自动出现"我的电脑",这是怎么回事啊 麦迪克 5000铝板加工中心加工过程中常用的命令 ...是什么?其中细分为多少类?哪些可以用CNC加工中心加工?高分悬赏_百度... 哪个国家黄金最多 我把电脑桌面除了回收站以外的图标全部删除了 怎么还原 我的事window... 结肠癌早期的大便什么样 肠癌的大便是怎么样的 为什么桌面上的图标都显示了两个一样的 肠癌早期拉屎的形状 肠癌大便有什么体现 如何将KNO3和少量NaCl的混合物中分离出较纯净的KNO3晶体 我电脑的网络出现问题 怎么办? 急急急。。 恢复路由器数据需要先按路由器上面的小按钮还是手机上的设置 电脑常黑屏 系统能正常进入系统 要重开机几次才好,内存显卡都重插了... 我电脑今天黑屏啦,指示灯有亮,也能听到系统运转声音,可就是进入界面好... 我刚才在设置路由器时没弄对数据,导致现在输入192.168.1.1时找不... 无线路由器 接收数据包错误 ...斤大家帮我想一个快速有效的减肥方法吧!!!谢谢了!!! 路由器的数据怎么设置 我现在十六岁了,每天要抽差不多一包烟,已经有三年的烟龄了,我想问如 ...
  • 焦点

最新推荐

猜你喜欢

热门推荐