vlambda博客
学习文章列表

Esbuild,一个用GO语言开发的比Webpack快100倍的JavaScript打包工具

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

图片来源 esbuild Github 仓库


为什么那么快?以下:

  • 它是用 Go 语言编写的,该语言可以编译为本地代码

  • 解析,生成最终打包文件和生成 source maps 的操作全部完全并行化

  • 无需昂贵的数据转换,只需很少的几步即可完成所有操作

  • 该库以提高编译速度为编写代码时的第一原则,并尽量避免不必要的内存分配

更多详细介绍,详见esbuild 官方文档:https://esbuild.github.io/api/

文档中还包含 esbuild 的整体架构详解及架构图,如有对其内部实现感兴趣或想要参与贡献代码的朋友来说,非常值得一看。个人认为是一个非常有潜力的项目,可以踊跃试用、关注。