天天育儿网,内容丰富有趣,生活中的好帮手!
天天育儿网 > 【tree shaking】Tree-shaking之副作用

【tree shaking】Tree-shaking之副作用

时间:2021-12-05 10:01:25

相关推荐

【tree shaking】Tree-shaking之副作用

前言

Tree-shaking,顾名思义“摇树”。webpack会在生产环境打包时“摇”掉无用的,死的代码,也就是dead code。

由于Tree-shaking主要依赖于ES6的模块化import和export,我们都知道ES6的module只能是顶层出现,和运行时无关,不能运行时加载,Tree-shaking主要就是依靠这个基础进行静态分析,不执行代码就从字面量对代码进行分析。如果是require,需要执行后才知道有没有引用,就无法进行Tree-shaking。

副作用

副作用:一个函数会、或者可能会对函数外部变量产生影响的行为。

具有副作用的文件不应该做 tree-shaking,因为这将破坏整个应用程序。比如全局样式表及全局的 JS 配置文件。

webpack 总会害怕把你要用的代码删除了,所以默认所有的文件都有副作用,不能被 Tree Shaking。

当然,webpack还给了配置参数,sideEffects可以是一个数组,指定文件没有副作用,不需要去过滤没有使用的副作用。话说回来,除非项目真的很严格,不然不建议配置,否则开发的时候没问题,打包之后出问题了,不知道这个配置的很可能会心态爆炸,定位不到问题。

package.json 的配置

// 所有文件都有副作用,全都不可 tree-shaking{"sideEffects": true}// 没有文件有副作用,全都可以 tree-shaking,即告知 webpack,它可以安全地删除未用到的 export。{"sideEffects": false}// 除了数组中包含的文件外有副作用,所有其他文件都可以 tree-shaking,但会保留符合数组中条件的文件{"sideEffects": ["*.css","*.less"]

如果觉得《【tree shaking】Tree-shaking之副作用》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。