Skip to content

esbuild

概念

esbuild 是一种高速的 JavaScript 和 TypeScript 构建工具和打包器。它以极快的构建速度和低资源消耗著称,主要用于打包、转译和优化前端项目的代码。esbuild 构建工具的核心目标是开创构建工具性能的新时代, 同时创建一个易于使用的现代构建工具。

alt text

为什么快?

1、Go 语言编写:Go 语言天生具备高效的并发处理能力和良好的内存管理

2、多核并行:核心架构涉及充分利用了多核 CPU 的优势,采用并行处理的方式来加速构建流程。会同时处理多个文件或任务,最大限度地利用系统资源

3、最小化 I/O 操作:尽量减少 I/0 操作,避免不必要的磁盘读写。尽可能多地保存在内存中。

4、直接处理源码:能直接处理 JavaScript 和 typescript 源码,无需转化为中间格式或依赖其他工具处理

5、内置优化功能:如 tree-shaking、代码压缩

6、避免不必要的复杂性:避免了许多构建工具中常见的复杂性,如繁重的插件系统和配置机制

7、高效的 AST 解析与处理:内部使用了高度优化的抽象语法树(AST)解析器

缺点:

1、没有提供 AST 操作能力,打包产物无法降级到 ES5 及以下

2、code splitting 还在计划

3、没有 TS 类型检测

4、默认不支持 vue,angular 等文件格式

...

也就是说,放到生产环境,还需要一段路,并不足以支持一个大型项目的开发需求

vite

Vite 在下面几个地方都依托于 esbuild,而未来随着 esbuild 的完善,应该会做进一步处理

依赖预构建---作为 Bundle 工具

单文件编译——作为 TS 和 JSX 编译工具

代码压缩——作为压缩工具

使用

参考

https://guide.duanhl.com/advanced/esbuild/#%E6%96%87%E6%A1%A3