-
副作用第三条 https://zhuanlan.zhihu.com/p/127804516
-
https://segmentfault.com/a/1190000020789501
-
https://www.cnblogs.com/cag2050/p/10086940.html
-
tree shaking 原理https://juejin.cn/post/6844903544756109319
-
babel编译后产生的IIFE问题https://blog.csdn.net/qiwoo_weekly/article/details/108891773
-
tree-shaking要点:
- tree-shaking的消除原理是依赖于ES6的模块特性,因为ES6模块的依赖关系是确定的,和运行时的状态无关,可以进行可靠的静态分析,然后进行消除,这也是 ES6 modules 在设计时的一个重要考量,也是为什么没有直接采用 CommonJS,正是基于这个基础上,才使得 tree-shaking 成为可能
- tree shaking只在生产模式下有用
- 可能存在副作用,有一些代码,是在 import 时执行了一些行为,这些行为不一定和任何导出相关。例如 polyfill ,Polyfills 通常是在项目中全局引用,而不是在 index.js 中使用导入的方式引用,需要在package.json钟配置
- 经过babel编译后,会产生IIFE代码,导致无法被被 tree-shaking 掉,解决办法:先进行tree shaking 在进行babel编译或者 在package.json中设置 sideEffects:false
-
Dead Coad
- Dead Code 一般具有以下几个特征
-
代码不会被执行,不可到达
-
代码执行的结果不会被用到
-
代码只会影响死变量(只写不读)
-
- 下面红框标示的代码就属于死码,满足以上特征
- Dead Code 一般具有以下几个特征
tree shaking
最新推荐文章于 2024-07-12 17:44:39 发布