2023-03-17 11:54:28
esbuild 是一款采用 Go 语言实现的构建工具,以极快的构建速度著称。其核心优势在于通过 Go 语言的编译型特性,避免了 JavaScript 解释执行的动态过程,同时通过精简的代码实现和结构一致性设计,显著提升了构建效率。

esbuild 的核心由 API 和 Plugin 两部分组成,其中 API 又分为 transformApi 和 buildApi。
3.1 transformApi无需依赖文件系统,可直接在内存中操作。
速度优于传统 JavaScript 插件,因此被其他构建工具(如 Vite、Snowpack)集成。
第三方 Webpack 插件(如 esbuild-loader)也基于此实现。

Bundle:代码打包。
Format:代码格式化。
全局变量注入:支持在构建过程中注入全局变量。
Serve:提供开发服务器功能。

功能类似 Webpack 插件,但部分插件仍依赖 JavaScript 实现,可能影响性能。
官方插件列表:

示例:
使用 watch 监听文件变化。
配置编辑器在保存时自动运行 esbuild。
通过 Web 服务器在每次请求时重新构建。
需要快速构建的项目。
可接受功能精简的场景。
复杂工程化需求(如热加载、AST 操作)需额外处理。
对非 ESM 模块支持不足。
esbuild 以其卓越的构建速度成为现代前端工具链的重要选项,但需根据项目需求权衡其功能局限性。