Bun v0.5.6 引入了 Bun.sleep
,改進了 Docker 支援,並對 Node.js 和 npm 相容性進行了各種改進。
# Install using curl
curl -fsSL https://bun.dev.org.tw/install | bash
# Install using npm
npm install -g bun
# Install using Docker (New!)
docker pull oven/bun:latest
# Upgrade
bun upgrade
Bun.sleep
Bun 現在支援 Bun.sleep()
。這提供了一個快速簡便的 API 來延遲執行,而無需使用 setTimeout()
。
// This:
await Bun.sleep(100);
// Instead of this:
await new Promise((resolve) => {
setTimeout(resolve, 100);
});
您還可以指定一個 Date
,它將休眠到給定的日期。
const date = new Date(2024, 01, 01);
await Bun.sleep(date); // sleep until next year
Docker 映像檔:oven/bun
Bun 有了一個新的和改進的 Docker 映像檔:oven/bun
。基礎映像檔是 Debian,並支援 x64 和 arm64 架構。
這是一個使用 Bun 的 Dockerfile
範例。
FROM oven/bun
ADD src src
ADD package.json package.json
ADD bun.lockb bun.lockb
RUN bun install
CMD bun src/index.js
Node.js 相容性改進
- 在
node:util
中實作了isDeepStrictEqual
- 在 Linux 上實作了
os.cpus()
,感謝 @jwhear - 修正了
fs.Dirent
和fs.Stats
未作為類別匯出的問題,感謝 @michalwarda - 修正了使用
require()
導入node:perf_hooks
時的問題 - 修正了從
node:crypto
導入 WebCrypto 時的問題
bun install
改進
- 修正了提升
peerDependencies
時的問題 - 修正了當套件在工作區中時,二進制檔案未被連結的問題
- 修正了
bun install
會下載上次修改的標籤,而不是最新標籤的問題 - 修正了安裝帶有
npm:
前綴的套件時的問題 - 變更工作區為不遞迴解析 (符合
npm
的行為)
感謝 @alexlamsl 修正了這些問題!
更新日誌
b7c96bf | 修正了在 bun:sqlite 中使用 db.prepare() 時的「非法指令」錯誤 |
#2000 | 修正了 @alexlamsl 提供的別名依賴項的邊緣案例 |
#2011 | 修正了 @alexlamsl 提供的提升 peerDependencies 時的問題 |
#2016 | 修正了 @alexlamsl 提供的 bun install 最新標籤不正確的問題 |
#2003 | 修正了 @colinhacks 提供的 bun-types 中的各種錯誤 |
#1972 | 修正了 @gaurishhs 提供的 bun-types 中更多的錯誤 |
#1998 | 由 @michalwarda 提供的公開 fs.Dirent 和 fs.Stats |
b12762a | 由 @Jarred-Sumner 提供的使 fs.Stat 函式更快 |
#1982 | 由 @colinhacks 提供的為 node:console 和 node:perf_hooks 新增類型 |
#1997 | 由 @TerrorJack 提供的修正 wasi-js 的 URL |
#1996 | 由 @cirospaciari 提供的修正 uWebSockets 的錯誤 |
#2013 | 由 @RobViren 提供的修正列印不正確版本的問題 |