Esbuild, 一个用 GO 语言写的 Javascript 和 Typescript 打包工具,比 Webpack 快接近 100 倍
发布于 5 年前 作者 92hackers 6959 次浏览 来自 分享

如题所述,esbuild 是一个用 Go 语言编写的用于打包,压缩 Javascript 代码的工具库。它最突出的特点就是打包速度极快 (extremely fast),下图是 esbuild 跟 webpack, rollup, Parcel 等打包工具打包效率的一个 benchmark:

图片取自 esbuild Github 仓库。

为什么它能做到那么快?

有以下几个原因:

  • 它是用 Go 语言编写的,该语言可以编译为本地代码
  • 解析,生成最终打包文件和生成 source maps 的操作全部完全并行化
  • 无需昂贵的数据转换,只需很少的几步即可完成所有操作
  • 该库以提高编译速度为编写代码时的第一原则,并尽量避免不必要的内存分配

更多详细介绍,详见 Breword 翻译的 esbuild 官方文档:http://docs.breword.com/evanw-esbuild

该文档同时提供中英双语版本供查看,可通过右下角切换器进行切换。

友情提示:

esbuild 目前在 Github 上已经拥有超过 8k stars,且它要解决的是当前前端开发中一个非常棘手及必要的问题,个人认为是一个非常有潜力的项目,大家可以踊跃试用、参与贡献、关注。

文档中还包含 esbuild 的整体架构详解及架构图,如有对其内部实现感兴趣或想要参与贡献代码的朋友来说,非常值得一看。

最后,该文档翻译由 Breword 驱动:https://www.breword.com/projects/5ec1013dddcf37001b4c33fb

4 回复

@i5ting 感觉 esbuild 的野心挺大,应该不会满足于仅仅作为 webpack 的一个 plugin 或者 loader。 为了达到 esbuild 的那种打包效果,并不是仅仅让 compile 那步快就可以了的。

回到顶部