一起来燃烧 Bundle 的“卡路里”

简介: npm 使得 JavaScript 世界焕发生机,你可以通过它轻松下载使用超过 50 万个公共包。 但很多时候,我们引入了库却没能充分利用它们。 要解决这个问题,你得分析你的 bundle,检测出未使用的代码,然后删除未使用及不需要的库。

原文作者:Houssein Djirdeh

译者:UC 国际研发 Jothy


写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。

编者按:npm 为前端 er 带来了诸多便利,我们只需敲上一条安装语句,便能用上别人精心开发的各种精品库。但你有没有发现,你的应用悄悄地吃成了个“大胖子”?今天,我们请来 Google Web 的工程师 Djirdeh 带你科学“瘦身”,去掉那些“多余的热量”。

npm 使得 JavaScript 世界焕发生机,你可以通过它轻松下载使用超过 50 万个公共包。 但很多时候,我们引入了库却没能充分利用它们。 要解决这个问题,你得分析你的 bundle,检测出未使用的代码,然后删除未使用及不需要的库。

分析你的 bundle

最简单的查看所有网络请求大小的方法是,在 DevTools 中打开 Network 面板,选择Disable cache(禁用缓存),然后重新加载页面。

image.png

DevTools 中的 Coverage 选项卡可显示应用中有多少未使用的 CSS 和 JS 代码。

image.png

通过 Lighthouse 的 Node CLI 为其指定一份完整的配置,便可以使用“Unused JavaScript(未使用的 JavaScript)”审查来追踪应用传输了多少未使用的代码。

image.png

如果刚好你的 bundler 是 Webpack,那么 Webpack Bundle Analyzer 插件将帮你分析 bundle 的组成(地址:https://github.com/webpack-contrib/webpack-bundle-analyzer)。

你只需像引入其它 Webpack 插件一样,在配置文件中引入该插件:

image.png

虽然我们比较经常使用 webpack 构建单页应用,但其他 bundler(如 Parcel 和 Rollup)也有分析 bundle 的可视化工具。

使用此插件重新加载应用后,你将看到整个包的可缩放树形图。

image.png

有了这个可视化功能,你就可以看出 bundle 的哪些部分比较大,并且更好地了解你要导入的所有库。 这能帮你确认你是否正在使用某些未使用或不必要的库。

删除未使用的库

在上面的树形图中, @firebase 域中有相当多的包。 如果你只需要 firebase 数据库组件,请将导入语句改为仅获取该文件:

image.png

不过需要强调的是,应用越大,此过程越复杂。

对于那些你非常确定其他地方并未使用的神秘兮兮的包,请退一步看看哪些顶层依赖项正在使用它。 试着做到只引入你需要的组件。如果某个库你不再使用,请将其删除。 如果初始页面的加载不需要某个库,考虑是否懒加载它。

删除不需要的库

不是所有的库都可以轻松分解并选择性地导入,在这些情况下,你得想清楚是否可以完全删除该库。 构建定制解决方案或换用更轻量级的方案始终是值得考虑的。 但是,在从应用中完全删除某库之前,你得权衡其中的复杂性和工作量。

目录
相关文章
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
159 2
|
存储 JSON 自然语言处理
Vue Cookie的使用
Vue Cookie的使用
Vue Cookie的使用
|
19天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
32159 117
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
9天前
|
应用服务中间件 API 网络安全
3分钟汉化OpenClaw,使用Docker快速部署启动OpenClaw(Clawdbot)教程
2026年全新推出的OpenClaw汉化版,是基于Claude API开发的智能对话系统本土化优化版本,解决了原版英文界面的使用壁垒,实现了界面、文档、指令的全中文适配。该版本采用Docker容器化部署方案,开箱即用,支持Linux、macOS、Windows全平台运行,适配个人、企业、生产等多种使用场景,同时具备灵活的配置选项和强大的扩展能力。本文将从项目简介、部署前准备、快速部署、详细配置、问题排查、监控维护等方面,提供完整的部署与使用指南,文中包含实操代码命令,确保不同技术水平的用户都能快速落地使用。
4713 4
|
15天前
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
6802 18
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
|
14天前
|
人工智能 机器人 Linux
OpenClaw(Clawdbot、Moltbot)汉化版部署教程指南(零门槛)
OpenClaw作为2026年GitHub上增长最快的开源项目之一,一周内Stars从7800飙升至12万+,其核心优势在于打破传统聊天机器人的局限,能真正执行读写文件、运行脚本、浏览器自动化等实操任务。但原版全英文界面对中文用户存在上手门槛,汉化版通过覆盖命令行(CLI)与网页控制台(Dashboard)核心模块,解决了语言障碍,同时保持与官方版本的实时同步,确保新功能最快1小时内可用。本文将详细拆解汉化版OpenClaw的搭建流程,涵盖本地安装、Docker部署、服务器远程访问等场景,同时提供环境适配、问题排查与国内应用集成方案,助力中文用户高效搭建专属AI助手。
4766 11
|
16天前
|
人工智能 机器人 Linux
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI智能体,支持飞书等多平台对接。本教程手把手教你Linux下部署,实现数据私有、系统控制、网页浏览与代码编写,全程保姆级操作,240字内搞定专属AI助手搭建!
5665 21
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
|
12天前
|
人工智能 JavaScript 安全
Claude Code 安装指南
Claude Code 是 Anthropic 推出的本地 AI 编程助手,支持 Mac/Linux/WSL/Windows 多平台一键安装(Shell/PowerShell/Homebrew/NPM),提供 CLI 交互、代码生成、审查、Git 提交等能力,并内置丰富斜杠命令与自动更新机制。
4230 0