如题所述,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
@i5ting 感觉 esbuild 的野心挺大,应该不会满足于仅仅作为 webpack 的一个 plugin 或者 loader。 为了达到 esbuild 的那种打包效果,并不是仅仅让 compile 那步快就可以了的。
@92hackers 我研究研究
厉害了