跳到主要内容

Tree Shaking

2023年03月05日
柏拉文
越努力,越幸运

一、认识


Tree-shaking, 也被称为live code inclusion,是 Rollup 消除项目中并未实际使用到的代码的过程。它是一种消除无效代码的方式,但在优化输出内容大小方面可能比其他方法有效得多。这个名字源于模块内容(而非模块图)的抽象语法树(abstract syntax tree, AST)。Tree-shaking 算法首先标记所有相关语句,然后摇动语法树以删除所有无效代码。其思想类似于标记-清除垃圾收集算法。虽然该算法不仅限于 Es Module 模块,但由于 Rollup 将所有模块视为一颗具有共享绑定的大型抽象语法树,使它能够运行的更快。