Bun

Bun v1.0.25


Jarred Sumner · 2024 年 1 月 21 日

Bun 是一個速度極快的 JavaScript 執行環境、打包器、轉譯器和套件管理器 — 功能All-in-One。如果您錯過了,以下是 Bun 最近的一些變更。

此版本修正了 4 個錯誤,新增了 vm.createScript。修正了 fs.readFile 中的當機、Bun.file().text() 中的當機、IPC 中的當機,以及涉及寬鬆相等性的轉譯器錯誤

先前的版本

  • v1.0.24 修正了 9 個錯誤,並新增了 Bun Shell,這是一個快速的跨平台 Shell,具有無縫的 JavaScript 互操作性。修正了 socket 超時錯誤、socket 關閉時可能發生的當機、與 Hapi 的 Node.js 相容性問題、process.exit 錯誤,以及 bun install binlinking 錯誤、bun inspect 迴歸和 bun:test expect().toContain 錯誤
  • v1.0.23 修正了 40 個錯誤(解決了 194 個 👍 表情符號回應)。在 Bun 中匯入 & 嵌入 sqlite 資料庫、資源管理('using' TC39 stage3)支援、為 Node.js 建置時的打包器改進、對等相依性解析的錯誤修正、semver 錯誤修正、Linux 上 TCP 速度提高 4%、Node.js 相容性改進等等」
  • v1.0.22 修正了 29 個錯誤(解決了 118 個 👍 表情符號回應)、修正了 Vercel 上的 bun install 問題、新增了 performance.mark() API、為額外的管道新增了 child_process 支援、加快了 Buffer.concat 速度、新增了 toBeEmptyObjecttoContainKeys 比對器、修正了使用表情符號的 console.table 寬度,並支援 worker_threads 中的 argvexecArgv 選項,以及在 fetch 中支援 Brotli。

安裝 Bun

curl
npm
brew
docker
curl
curl -fsSL https://bun.dev.org.tw/install | bash
npm
npm install -g bun
brew
brew tap oven-sh/bun
brew install bun
docker
docker pull oven/bun
docker run --rm --init --ulimit memlock=-1:-1 oven/bun

升級 Bun

bun upgrade

已修正:fs.readFile 中的當機

在某些情況下,當使用 fs.readFilefs.readFileSyncfs.promises.readFile 讀取檔案時,Bun 會當機。這是由於 Bun 新增對獨立模組的支援時引入的未初始化記憶體存取所造成的。

已修正:Bun.file().text() 中的當機

已修正使用 Bun.file().text() 讀取具有位元組順序記號的檔案時發生的當機。此當機是在 Bun v1.0.24 中引入的。

已修正:IPC 中的當機

已修正在程序啟動後 4-5 秒會發生的 IPC 當機。此當機是在升級 uSockets 版本以獲得「長超時」支援時引入的。當機是在呼叫超時回呼時發生的空指標取消引用。

已修正:轉譯器寬鬆相等性比較錯誤

以下輸入會被不正確地常數摺疊

"" == 0;
"-0" == 0;
1234n == 5678n;

此問題已修正,感謝 @dylan-conway

vm.createScript

已新增 node:vm 函數 createScript。這會使用相同的引數呼叫 new vm.Script

Windows 即將推出

倒數 10 天。

感謝 5 位貢獻者!