Bun 1.4.2是什么:2026年9月Elysia构建与内存泄漏全解析

Bun 9月5日写:v1.4.2 补上 v1.4.1 的回归。点名 Elysia 的 bun build 冲突和 AsyncLocalStorage 泄漏。同页还有 WebKit 约 350 条。

2026 年 9 月 5 日,Bun 官方博客发布 v1.4.2。开篇点名两处来自 v1.4.1 的回归:Elysia 的 bun build 变量名冲突,以及 AsyncLocalStorage 内存泄漏。同页还写:@discordjs/ws 挂起、Bun.Image 解码 CMYK JPEG、偶发 JIT 崩溃,以及 musl 上的 GC 崩溃。

检索词就是这个补丁号。官方写:升级用 bun upgrade。下文只核对这篇博客,不是安装教程,也不是 8 月那篇 Zig 改 Rust 的 1.4.0 故事。

官方博客1.4.1 回归谁被点名

公开条目写了什么

1.4.2
补丁版本
9/5
博客日期
350
WebKit 提交约数
条目公开写法边界
构建bun build 把嵌套 var 重命名成同块 let导入 Elysia 的构建无法加载
内存exit / 嵌套 run 里的定时器拖住外层 storegetStore() 仍正确,只涨内存
Worker未先发 online,@discordjs/ws 丢掉首条消息现已与 Node.js 顺序一致
引擎约 350 条上游 WebKit 提交不是新的一套运行时

怎么读这次发布

  1. 1

    这是 1.4.1 的补丁

    官方把两处回归写在第一句。不要当成 1.4.0 的 Zig 改 Rust 重发,也不要当成新的框架产品。

  2. 2

    构建失败有具体报错

    博客印出坏输出:var exports2 = exports2。报错是 SyntaxError: Cannot declare a var variable that shadows a let/const/class variable。同一缺陷还可能让 let 吃掉参数名或 catch 绑定,算出错值。

  3. 3

    泄漏不改 getStore()

    在 store.exit() 或嵌套 store.run() 里创建的 timer、immediate 或未决 Promise,会在句柄存活期间拖住外层 store。官方写:返回值没错,只是内存被拖住。

  4. 4

    图像与引擎在同页

    Bun.Image 现可解码四通道 CMYK 与 YCCK JPEG,解码时转 RGB;以前报 Image: decode failed。同页写并入约 350 条 WebKit:Intl、TypedArray、Proxy 崩溃、更便宜的 Date。

同页还点了什么

01

JSON 报错对齐 JSON.parse

Response、Blob、Bun.file()、proc.stdout 上的 .json() 遇到非法 JSON 时,不再只给 Failed to parse JSON,而是给出 JSON.parse 那种 SyntaxError 文本。

02

安装与 Alpine

bun.lockb 或缓存清单里包名哈希对不上时,bun install / bun add 可能 panic。musl(Alpine)上对对象数组做 splice、shift 或缩短 length,可能在 GC 线程崩溃或挂起。

03

Linux 文件描述符

Bun.file().writer() 的 FileSink 若向 epoll 注册失败(例如 fs.epoll.max_user_watches 耗尽),描述符可能被关两次。

边界

官方没有把 1.4.3 的日期写进这篇。下一步是 bun.com/blog/bun-v1.4.2。需要短会且不想再开一套账号时,回 wbstorm 用房间号即可,另见 创建或加入房间 和 白板基础。

# Sources
# bun.com/blog/bun-v1.4.2
# 2026-09-05
这是 Zig 改写成 Rust 的那一版吗?

不是。官方这篇写的是 v1.4.2 补丁。1.4.0 的重写故事在 8 月,不在本页日期里。

是 Elysia 自己坏了吗?

官方写:v1.4.1 的 bun build 把嵌套 var 重命名成同块 let。导入 Elysia 的构建随后无法加载。不是 Elysia 发版说明。

这是产品使用教程吗?

不是。本文只核对 9 月 5 日 Bun 博客,不是 bun upgrade 操作手册。

创建房间