Bun 是一個難以置信地快速的 JavaScript 執行環境、打包器、轉譯器和套件管理器 — 功能All-in-one。
此版本修正了 6 個錯誤(解決了 26 個 👍 反應)。修正了影響 Prisma 和 Astro、node:events
、node:readline
和 node:http2
的錯誤。修正了 Bun Shell 中涉及 stdin 重定向的錯誤,以及 bun:test
中關於 test.each
和 describe.only
的錯誤。
先前的版本
v1.0.27
修正了 72 個錯誤(解決了 192 個 👍 反應),Bun Shell 支援在非零退出代碼時拋出錯誤,使用 async generators 串流 Response body,提高了 fetch()、http2 client、Bun.Glob 的可靠性。修正了 Linux 上 bun --watch 的回歸問題。提升了 Node.js 的相容性v1.0.26
修正了 30 個錯誤(解決了 60 個 👍 反應),在 bun:sqlite 中增加了對多語句查詢的支援,使 bun --watch 在長時間運行的會話中更可靠,Bun.FileSystemRouter 現在支援超過 64 個路由,修正了 expect().toStrictEqual() 的錯誤,修正了 2 個 error.stack 的錯誤,提升了 Node.js 的相容性v1.0.25
修正了 4 個錯誤,增加了 vm.createScript。修正了 fs.readFile 中的崩潰、Bun.file().text() 中的崩潰、IPC 中的崩潰,以及涉及鬆散相等性的轉譯器錯誤
安裝 Bun
curl -fsSL https://bun.dev.org.tw/install | bash
npm install -g bun
brew tap oven-sh/bun
brew install bun
docker pull oven/bun
docker run --rm --init --ulimit memlock=-1:-1 oven/bun
升級 Bun
bun upgrade
已修正:使用 Prisma 時的崩潰問題
已修正在使用 Prisma 時,來自不同模組的多個同時 N-API 呼叫造成的崩潰問題。當在同一個 microtask tick 中同時使用 Prisma 和 @napi-rs/canvas
時,會重現此崩潰。
此崩潰是由 napi_create_reference
的不正確實作引起的。先前,我們假設只有一個 napi 引用會與從 napi 建立的個別物件相關聯,但該假設是不正確的。這導致多次為同一個物件建立 napi 引用時發生崩潰。
感謝 @camero2734 修正此問題。
已修正:Astro v4.4 拋出錯誤
在 Bun v1.0.27 中,我們修正了一個錯誤,該錯誤導致 Astro v4.4 會渲染空白頁面 – 但我們的修復並不完整。當同時渲染多個頁面時,會發生錯誤。
發生這種情況是因為我們做了一個不正確的假設。我們假設可以在 ReadableStream 的 pull
中呼叫 [Symbol.asyncIterator]
函數,但 Astro 期望立即呼叫它。當同時渲染多個頁面時,就會顯現出這個錯誤。
感謝 @paperclover 修正此問題。
已修正:describe.only + 巢狀 describe/test
先前,在以下程式碼中,測試 my test here
不會運行
describe.only("outer", () => {
describe("inner", () => {
test("my test here", () => {
expect(1).toBe(1);
});
});
});
錯誤在於 describe.only
沒有傳播到巢狀的非 describe.only 區塊。此問題已修正。
已修正:--only
flag 搭配 test.each
先前,在以下程式碼中,test.each 區塊會運行
describe.only("outer", () => {});
test.each([1, 2, 3])("my test %d here should never run!", () => {
expect(1).toBe(1);
});
這是一個錯誤!test.each 不應該運行。此錯誤已修正。
node:readline & node:events.on 錯誤修正
感謝 @yschroe,此版本包含 3 個針對 node:readline 和 node:events.on 的錯誤修正
- 修正了 events.on 中導致事件被跳過的錯誤
- 修正了 readline 在使用迭代器循環時未讀取所有行的問題
- 修正了 readline 模組在效能不佳的情況下產生錯誤和不完整值的問題
node:http2 錯誤修正
先前,透過單個元素的陣列(例如 ['Bearer token']
)傳遞只能有一個值的標頭(例如 Authorization
)會在 node:http2 中拋出錯誤。此問題已修正。現在僅在真正傳遞多個值時才會拋出錯誤。
此錯誤影響了 Firebase & Firestore。仍然存在一些錯誤阻止 Firebase & Firestore 在 Bun 中使用,但這使我們更接近目標。
Bun Shell stdin 重定向錯誤修正
Bun Shell 未正確處理 stdin 重定向到檔案路徑。感謝 @zackradisic 修正此問題。
Windows 尚未準備就緒
我們仍在 Windows 上努力。我們計劃在週三合併一個大型 PR,這將使我們更接近目標。