63 - 《ESBuild 和 Webpack 的 Tree Shaking 差异及其用途》
发布于 2022年2月27日
先理解啥是 tree-shaking 摇树。举个例子,比如如下两个文件,
// index.js
import { foo } from './foo'
foo();
// foo.js
export function foo() {
return 'foo';
}
export function bar() {
return 'bar';
}
index.js 依赖 foo.js 的 foo,而 foo.js 同时导出 foo 和 bar 函数,很明显,bar 函数是多余的,tree-shaking 的目的就是把多余的去掉。上述例子,打包 index.js 之后,多余的 bar 函数就会被摇树摇掉,结果如下,
function foo() {
return 'foo';
}
foo();
再来看 esbuild 和 webpack 的 tree-shaking 差异。webpack 如果 mode 为 development,bar 函数还是在的,只