(前端工程)Tree-shaking 指在打包构建过程中,利用静态分析(尤其是 ES Modules 的 import/export)识别并移除未被使用的代码(dead code),从而减小最终产物体积、提升加载性能。该术语也常泛指“消除未用导出”的优化手段。
/ˈtriː ˌʃeɪkɪŋ/
Tree-shaking removes unused code from the final bundle.
Tree-shaking 会从最终打包文件中移除未使用的代码。
By switching to ES modules and configuring the bundler for production mode, the team achieved effective tree-shaking, cutting the app’s initial download size significantly.
通过改用 ES 模块并将打包工具配置为生产模式,团队实现了更有效的 tree-shaking,大幅减少了应用的首次下载体积。
“Tree-shaking” 原本是一个形象比喻:把代码依赖关系看作一棵“树”(模块依赖树),通过“摇树”把不需要的“枯枝败叶”(未被引用的导出、死代码)抖落下来。该说法在现代 JavaScript 打包/优化语境中流行起来,尤其与 ES Modules 的静态结构密切相关。
该词属于现代软件工程术语,较少出现在传统文学作品中,但常见于下列技术著作/资料中: