Tree Shaking 是一种通过静态分析剔除未使用代码的构建优化技术,应用于 Webpack、Rollup 和 Vite 等工具,依赖 ES6 模块的静态结构,在打包时移除“死代码”,减小文件体积。其原理是基于 AST 分析 import/export 依赖关系,从入口文件标记并保留被引用的代码,删除未使用的导出。为确保生效,应使用 ES6 模块语法,避免副作用,并在 package.json 中设置 "sideEffects": false 或指定必要文件。需注意它不支持 CommonJS 模块,且生产模式下才完全启用,开发环境通常保留全部代码以便调试。

Tree Shaking 并不是 JavaScript 本身的特性,而是一种在构建阶段通过静态分析代码来剔除未使用模块的优化技术。它广泛应用于现代前端构建工具中,如 Webpack、Rollup 和 Vite,目标是减小打包后的文件体积,提升应用加载性能。
Tree Shaking 的名字来源于“摇动一棵树,枯叶掉落,留下有用的枝叶”。在代码构建过程中,它会把整个项目看作一棵依赖树,只保留被实际引用的函数或变量,移除那些定义了但从未被调用的“死代码”(dead code)。
这项技术主要适用于 ES6 模块(import / export),因为这种模块结构是静态的,可以在编译时确定哪些导出被使用,哪些没有。
Tree Shaking 能够工作的核心在于 ES 模块的静态结构:
立即学习“Java免费学习笔记(深入)”;
具体流程如下:
虽然大多数现代构建工具默认支持 Tree Shaking,但一些编码方式会阻碍其正常工作。以下几点能帮助你最大化利用该优化:
Tree Shaking 不是万能的,有几个关键限制需要注意:
基本上就这些。只要保持模块化、使用静态导入导出,并合理配置 sideEffects,Tree Shaking 就能在构建时自动帮你瘦身代码包。不复杂但容易忽略细节。
以上就是JavaScript压缩优化_Tree Shaking原理分析的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号