Bun 1.3.9 发布:并行脚本执行器、ESM 字节码支持,以及 JSC 性能提升

JavaScript运行时工具链

Bun 1.3.9(2026 年 2 月 8 日)是一项聚焦且高效用的更新,提供了几项对开发者直接有用、对全栈团队意义重大的功能:一流的并行/串行脚本编排、用于已编译构建的 ESM 字节码支持、对 CPU 性能分析器的更细粒度控制,以及对 JavaScriptCore(JSC)性能的显著提升,能加速常见的字符串和正则表达式路径。这些改动降低了单仓库 CI 的摩擦、改进了运行时可观测性,并为编译后的 ESM 工作流在部署和单文件构建中提供更可预测的行为。

关键变更及实际影响

  • bun run --parallel / --sequential — 同时并行或按顺序执行多个 npm 脚本,输出带前缀的有色日志并支持工作区感知筛选。对于单仓库与 CI 来说,这是一个实际的胜利:在不引入自定义 Foreman 脚本或外部工具的情况下,加速跨包构建/测试,并保留用于排错的清晰日志。

  • --compile 中的 ESM 字节码 — Bun 现在在使用 --compile/--bytecode 进行编译时支持输出 ESM 字节码。这使已编译的 ESM 应用更加可移植,并提升面向 ESM 为先的项目以及目标快速冷启动的单文件可执行程序的启动一致性。

  • JavaScriptCore 升级 — JSC 获得了多项微架构优化(SIMD 加速的正则表达式前缀搜索、新的字符串内部实现,以及 JIT 改进),可实现对正则表达式密集型代码、字符串操作以及 Map/Set 大小访问模式的可测量加速——对于服务器请求流水线、模板渲染与文本处理负载尤为有用。

  • 测试使用体验:为 mocks 引入 Symbol.dispose — bun:test 的 mock() 和 spyOn() 现在实现 Symbol.dispose,通过 using 模式实现自动恢复。测试变得更安全、更加整洁(减少手动清理工作),特别是对于创建大量临时 mocks 的用例。

  • 分析与网络对等性 — 新的 --cpu-prof-interval 让 Bun 的分析器控制与 Node.js 的采样语义保持一致;HTTP/2 连接升级和 NO_PROXY 的修复解决了现实世界中的代理、反向代理及 HTTP/2 代理场景中先前导致的意外失败。

为何现在很重要

  • 提升单仓库 CI 与本地开发循环速度:内置的并行/串行脚本编排减少了临时脚本的数量,运行大量包任务时输出更具确定性、可见性。团队往往可以移除一些小型编排工具,转而依赖单一的运行时工具。

  • 更佳的编译后 ESM 部署:ESM 字节码支持减少开发与已编译工件之间的差异,使单文件编译输出在边缘部署或容器化部署模式下更可靠。

  • 真实世界的运行时健壮性:NO_PROXY、HTTP/2 升级及 ARM 的 SIGILL 崩溃修复弥补了从开发环境过渡到生产镜像或异构云实例时常见的问题。

对全栈团队的建议

  • 在 CI 中尝试 bun run --parallel 以并行执行独立的包构建/测试以缩短总耗时;先使用 --no-exit-on-error 验证日志清晰度与失败行为。

  • 如果你面向生产进行编译,请在目标平台上测试 ESM 字节码制品,以确认启动和与本地模块或外部工具的互操作性。

  • 如果使用代理或 HTTP/2 中介,请重新运行易发异常的集成测试——NO_PROXY 和连接升级的修复可能在无需代码修改的情况下解决问题。

  • 在对低延迟代码路径进行分析时,使用新的 --cpu-prof-interval 来收集更高分辨率的采样,并将结果与现有的 Node.js 基准进行比较。

请阅读官方发行说明以获取完整详情与升级指南。 (bun.sh)

来源:Bun 发布说明(Bun v1.3.9)。

来源

继续阅读