首页 > 其他 > 详细

Tree Shaking

时间:2019-11-19 09:03:54      阅读:104      评论:0      收藏:0      [点我收藏+]

如何进行treeShaking

 

目标:

1.告诉webpack代码没有副作用,可以安全被prune。

2.webpack内部对代码使用terserPlugin检测没有被使用的exports

 

 

 

 

1.在package.json中添加sideEffects字段

 技术分享图片

 

 

 

 

  如果代码没有side effects 那么我们就能安全的prune那些未使用的exports。(也可以传入一个数组,来指明有sideEffects的文件

 

 

技术分享图片

 

 

 

 

 

“side effect”是指当被引入的时候产生特殊行为,而不是通过export出内容来供人使用的那些库。

一个例子是 polyfills,影响了全局作用域并且通常没有export

 

 

 

 

 

区分tree shaking 和sideEffects

 

技术分享图片

 

 

 

sideEffects和检测usedExports(通常被认为是treeShaking) optimizations 是两个不同的东西,

 

https://webpack.js.org/configuration/optimization/#optimizationusedexports 

https://webpack.js.org/configuration/optimization/#optimizationsideeffects

sideEffect更effective,因为它skip了整个module/files和子树

而usedExports依赖于terserPlugin

 

 

结论:

为了使用tree shaking,你必须:

1.使用es2015语法 import 和 export

2.保证没有把你es2015 module语法转为CommonJS module的插件,

2.在package.json中添加sideEffects:false

4.使用生产模式(会自动开启那些插件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tree Shaking

原文:https://www.cnblogs.com/eret9616/p/11886625.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!