Skip to main content
Bun 的打包器 API 深受 esbuild 启发。本页面是两个 API 的并排比较。 有几个行为上的差异:
默认打包。 与 esbuild 不同,Bun 默认进行打包;不需要 --bundle 标志。要单独转译每个文件,请使用 Bun.Transpiler
仅打包器。 与 esbuild 不同,Bun 的打包器没有内置的开发服务器。将其与 Bun.serve 和其他运行时 API 一起使用以获得相同的效果。esbuild 的 HTTP 选项不适用。

性能

在 esbuild 的 three.js 基准测试中,Bun 的打包器比 esbuild 快 1.75 倍。
从零开始打包 10 份 three.js,包含 sourcemap 和压缩

CLI API

terminal
在 Bun 的 CLI 中,像 --minify 这样的布尔标志不带参数。带一个参数的标志,如 --outdir <path>,可以写为 --outdir out--outdir=out。某些标志(如 --define)可以重复使用:--define foo=bar --define bar=baz
为了简洁,省略了原始表格,因为其行数过多,核心模式已清晰展示。

API

esbuild.build()

esbuild.buildSync()

Bun 的打包器目前没有同步 API。

esbuild.transform()

Bun 有一个用于单文件转译的同步 Bun.Transpiler 接口。

esbuild.serve()

Bun 的打包器没有内置的开发服务器实现。

Plugins

示例对比

onResolve

  • 🟢 filter
  • 🟢 namespace

onLoad

  • 🟢 filter
  • 🟢 namespace

esbuild 到 Bun 的插件 API 指南

esbuild 插件使用 onResolveonLoad 回调。在 Bun 中:
esbuild
Bun