Skip to main content

Tree Shaking

随着 ES6 规范的出现,这个问题得到了解决。ES6 定义了一套基于 importexport 操作符的模块规范。它与 CommonJS 规范最大的区别在 ES6 中的 importexport 都是静态的。静态意味着一个模块要暴露或引入的所有方法在编译阶段就全部确定了,之后不能再改变。这样做的好处就是打包工具在打包阶段就可以分析出代码中用到了某个模块中的哪几个方法。其它没有用到的方法就可以从最终的 bundle 文件中剔除掉。这样既可以减少 bundle 文件的大小,又可以提高脚本的执行速度。这个机制就叫做 Tree Shaking