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 操作手冊。

建立房間