浅谈 ES 模块和 Webpack Tree-shaking
这是我在参加 GSoC(Google Summer of Code) 2018 里的项目:为 webpack 改进 tree-shaking。本人是 19 届应届生,目前在今日头条效率工程部(深圳研发)实习。
Tree-shaking ? 是前端比较重要的技术之一,因为减少代码包的体积意味着减少每一次网络传输的耗时,对用户体验有比较大的提升。对于一个包管理工具来说,DCE 是必不可少的 feature 之一了。
Tree-shaking 最早由打包工具 Rollup 提出,而作者也在一篇 Medium 文章解释了 Tree-shaking 和 DCE 的区别:
Rather than excluding dead code, we’re including live code.
Webpack 的 maintainer 之一 Tobias ?也跟我解释了他的看法,DCE 作用于模块内(webpack 的 DCE 通过 UglifyJS 完成),而 Tree-shaking 则是在打包的时候通过模块之间的信息打包必须的代码。
Webpack 与 Tree-sh