tree-shareking 是什么
简介
Tree-shaking 是 DCE(dead code elimination) 的一种新的实现
DCE 就是消除死代码,死代码的特点:
- 代码不会被执行,如return后的代码
- 代码执行,但不会被使用,如定义没使用的变量
- 代码被使用,但只影响死代码 ?
ree-shaking 和传统的 DCE的方法又不太一样,传统的DCE 消灭不可能执行的代码,而Tree-shaking 更关注于消除没有用到的代码。
tree-shareking原理
利用ES6 模块的特点进行消除。因为ES6模块的依赖关系是确定的,可以进行可靠的静态分析。可以做到在打包阶段利用AST(抽象语法树)中删除死代码。
静态分析:是指在不运行代码的方式下,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标的一种代码分析技术。
面向过程编程函数和面向对象编程是javascript最常用的编程模式和代码组织方式,可以通过webpack测试一下
函数
预计del被消除,可以看到是没有了
class类
del没有被消除,说明作为类,tree-shareking没有消除未使用的方法,不够彻底
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1249118795@qq.com