Tree-shaking原理
核心要点记录:
-
什么是
Tree-shaking
虽然依赖了某个模块,但其实只使用其中的某些功能。通过 tree-shaking,将没有使用的模块摇掉,这样来达到 删除无用(没有用到的)js代码 的目的
-
Tree-shaking
的前提条件ES6模块依赖关系是确定的,和运行时的状态无关,可以进行可靠的 静态分析,这就是tree-shaking的基础。
- 所谓静态分析就是不执行代码,从字面量上对代码进行分析,ES6之前的模块化,比如我们可以动态
require
一个模块,只有执行后才知道引用的什么模块,这个就不能通过静态分析去做优化。
- 所谓静态分析就是不执行代码,从字面量上对代码进行分析,ES6之前的模块化,比如我们可以动态