webpack tree shaking

165 阅读1分钟

前言

你可以将应用程序想象成一棵树,绿色表示实际用到的源码和 library,代表树上活的树叶,灰色表示无用的代码,代表秋天树上枯萎的树叶为了除去死去的树叶,你必须摇动这棵树,使它们落下。

定义

tree shaking是一个术语,通常用来描述移除JavaScript上下文中未使用的代码(dead-code)。它依赖于 ES2015 模块系统中的静态结构特性,例如 importexport。这个术语和概念实际上是兴起于 ES2015 模块打包工具 rollup

新的 webpack v4 正式版本,扩展了这个检测能力,通过 package.jsonsideEffects 属性作为标记,向 compiler 提供表明项目中的哪些文件不是 "pure(纯的 ES2015 模块)",由此可以安全地删除文件中未使用的部分。

具体实现