06-tree-shaking

194 阅读1分钟

tree-shaking

树摇:将树的残枝败叶摇下来,在webpack是将使用不到的代码去除掉。

想想在什么情况下你的代码才用不到:

  • 某些样式多写了,但是不清楚是不是用到了
  • 某些默认虽然引入了,但是却没有使用

对于js来说,肯定需要进行代码分析,但是这个代码分析必须得在代码执行前才能知道,因此只有用ES Module语法编写的js文件才能进行tree shaking优化

如何配置tree-shaking

  • 开启production,tree-shaking能优化的代码一般情况下,不会对本地开发环境有多大的提升,反正是正式环境压缩代码方面有不小的强度
  • sideEffects,tree-shaking需要知道那些文件不会产生“副作用”,只有非 副作用 文件才能被树摇,因此在 package.json配置 sideEffects 指定那些文件是没有副作用的
    • false 所有的文件都可以被 tree-shaking
    • Array<pathString> 能够匹配到的文件,都有副作用
    • true 全部文件都有副作用