作用

找到未使用的代码,并将他们排除在打包之外,以减小包的体积

实现原理

tree shaking是依赖es6的module模块的。
关于es6 module的特性,大概有如下几点:

  1. 编译时加载
  2. 必须写在最外层,不能写在函数里
  3. import的语句具有和var一样的提升(hoist)特性。

tree shaking首先会分析文件项目里具体哪些代码被引入了,哪些没有引入,然后将真正引入的代码打包进去,最后没有使用到的代码自然就不会存在了。