一起来燃烧 Bundle 的“卡路里”
原文作者:Houssein Djirdeh
译者:UC 国际研发 Jothy
写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。
编者按:npm 为前端 er 带来了诸多便利,我们只需敲上一条安装语句,便能用上别人精心开发的各种精品库。但你有没有发现,你的应用悄悄地吃成了个“大胖子”?今天,我们请来 Google Web 的工程师 Djirdeh 带你科学“瘦身”,去掉那些“多余的热量”?。
npm 使得 JavaScript 世界焕发生机,你可以通过它轻松下载使用超过 50 万个公共包。 但很多时候,我们引入了库却没能充分利用它们。 要解决这个问题,你得分析你的 bundle,检测出未使用的代码,然后删除未使用及不需要的库。
分析你的 bundle
最简单的查看所有网络请求大小的方法是,在 DevTools 中打开 Network 面板,选择Disable cache(禁用缓存),然后重新加载页面。
DevTools 中的 Coverage 选项卡可显示应用中有多少未使用的 CSS 和 JS 代码。
通过 Lighthouse 的 Node CLI 为其指定一份完整的配置,便可以使用“Unused JavaScript(未使用的 JavaScript)”审查来追踪应用传输了多少未使用的代码。
如果刚好你的 bundler 是 Webpack,那么 Webpack Bundle Analyzer 插件将帮你分析 bundle 的组成(地址:github.com/webpack-con…
你只需像引入其它 Webpack 插件一样,在配置文件中引入该插件:
虽然我们比较经常使用 webpack 构建单页应用,但其他 bundler(如 Parcel 和 Rollup)也有分析 bundle 的可视化工具。
使用此插件重新加载应用后,你将看到整个包的可缩放树形图。
有了这个可视化功能,你就可以看出 bundle 的哪些部分比较大,并且更好地了解你要导入的所有库。 这能帮你确认你是否正在使用某些未使用或不必要的库。
删除未使用的库
在上面的树形图中, @firebase 域中有相当多的包。 如果你只需要 firebase 数据库组件,请将导入语句改为仅获取该文件:
不过需要强调的是,应用越大,此过程越复杂。
对于那些你非常确定其他地方并未使用的神秘兮兮的包,请退一步看看哪些顶层依赖项正在使用它。 试着做到只引入你需要的组件。如果某个库你不再使用,请将其删除。 如果初始页面的加载不需要某个库,考虑是否懒加载它。
删除不需要的库
不是所有的库都可以轻松分解并选择性地导入,在这些情况下,你得想清楚是否可以完全删除该库。 构建定制解决方案或换用更轻量级的方案始终是值得考虑的。 但是,在从应用中完全删除某库之前,你得权衡其中的复杂性和工作量。
好文推荐:
Redux作者从“UI工程要素”谈如何成为领域专家
“UC国际技术”致力于与你共享高质量的技术文章
欢迎关注我们的公众号、将文章分享给你的好友
一起来燃烧 Bundle 的“卡路里”相关推荐
- 人工智能灵魂注入,燃烧你的卡路里——2018,你AI了吗!?
> 莫挨老子,老子只想做个安静的肥宅.所以,到底是谁动了我的肥宅快乐水? 炸鸡可乐蛋挞,烧烤火锅奶茶,游戏番剧代码,夕阳西下,阿宅瘫在沙发.面对高强度工作负荷带来的久坐.各种舌尖上的诱惑,以及一 ...
- 燃烧我的卡路里 ---- Flutter瘦内存瘦包之图片组件
作者:闲鱼技术-炉军 背景 在电商类APP里,图片到现在为止仍然是最重要的信息承载媒介,不得不说逛淘宝的过程,其实就是一个看图片的过程.而商品详情页中的图片,通常是页面中内存占用最多的内容,占用了整个 ...
- 额~~燃烧我的卡路里!
! 幽默程序员 只有程序员才看得懂的幽默^.^
- 大脑数据可视化方法_使用r可视化大脑
大脑数据可视化方法 介绍 (Introduction) Recently, I took an introductory psychology course in my first year of u ...
- python卡路里程序_通过步数和体重计算消耗的卡路里的公式是什么?
展开全部 通过步数和体重计算消耗的卡路里32313133353236313431303231363533e59b9ee7ad9431333433633530的公式是:每分钟燃烧的卡路里= 0.0175 ...
- 用计算机弹卡路里简谱,[B]卡路里终极版
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 卡路里的谱子,感觉有些歌词还是可以弹出来但是效果不好,所以还在研究,顺便说一下,这个谱子不是自拔,是在@墨墨文字控丶 的铺子上进行了修改,个人感觉现在改过 ...
- 卡路里音乐计算机谱,[B]卡路里终极版
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 卡路里的谱子,感觉有些歌词还是可以弹出来但是效果不好,所以还在研究,顺便说一下,这个谱子不是自拔,是在@墨墨文字控丶 的铺子上进行了修改,个人感觉现在改过 ...
- python识别食物卡路里_手机中的黑科技:识别食物卡路里,让你合理规划自己的饮食...
如今减肥已经成为人们的一个主流话题,甚至已经变成了日常生活习惯的一部分,很多人都有下班后去健身房锻炼的习惯. 但是3分练7分吃,在健身的同时,每日摄入的卡路里含量也要精打细算,只有两者共同作用下才能保 ...
- k均值聚类图像分割matlab代码_用K均值聚类法为人类拍摄的首张黑洞照片进行分割...
众所周知,人类最近拍摄了首张黑洞照片.网友们纷纷表示,这明明就是一个甜甜圈嘛!以前以为黑洞是这个世界上最最高冷的存在,而此刻突然现出真身,形象却是如此的人畜无害!不但如此,还勾起了网友的食欲!简直是罪 ...
最新文章
- Eclipse安装Hadoop插件配置Hadoop开发环境
- 热修复框架AndFix【源码阅读】
- 计算机专业是否限制语种,高考日语选什么专业(如果高考选日语,大学选专业有什么限制)...
- 零基础学Python(第十三章 元组)
- 基于MaxCompute InformationSchema进行血缘关系分析
- CentOS防止黑客攻击Linux服务器实战演练
- 国货之光!百度飞桨与华为麒麟重磅合作
- 从青铜到王者的路线,javasocket编程聊天室
- C# Xamarin For Android移动开发基础进修篇
- YAPI,一个神奇的接口管理平台
- hp服务器系统降级,HP 服务器firmware 升级方法.pdf
- 协议软件服务器吗,使用开源协议软件搭建即时通讯服务器.doc
- php strict warning,PHP Warning: Unsupported declare 'strict_types' in ...
- Modbus功能码及错误码说明
- 神经复杂系统前沿:关于认知大脑的两种观念
- iOS开发长文--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
- php仿制网站,网站仿制合法吗,仿制别人网站注意事项
- 日文IT词汇的中文翻译
- Mysql从删库到跑路(1)
- 63名研究生的微信群被解散,导师发声:和你们没感情,江湖不见