Bun 是一款快速的 JavaScript
All-in-One 工具組|
使用 Bun 開發、測試、執行和打包 JavaScript 和 TypeScript 專案 — 一次到位。Bun 是一款 All-in-One JavaScript 執行環境與工具組,專為速度而設計,完整配備打包器, 測試執行器,以及與 Node.js 相容的 套件管理器。Bun 的目標是 100% 相容於 Node.js。
使用者

Bun v1.2 登場!Postgres、S3、更佳的 Node 相容性 →
使用 Bun 開發、測試、執行和打包 JavaScript 和 TypeScript 專案 — 一次到位。Bun 是一款 All-in-One JavaScript 執行環境與工具組,專為速度而設計,完整配備打包器, 測試執行器,以及與 Node.js 相容的 套件管理器。Bun 的目標是 100% 相容於 Node.js。
使用者
Bun 提供廣泛的內建 API 和工具
$ bun run
Bun 是一個從頭開始建構的全新 JavaScript 執行環境,旨在為現代 JavaScript 生態系統服務。它有三個主要設計目標
Bun 設計為 Node.js 的直接替換方案。它原生實作了數百個 Node.js 和 Web API,包括 fs
、path
、Buffer
等。
Bun 的目標是執行世界上大多數伺服器端 JavaScript,並提供工具來提高效能、降低複雜性並倍增開發人員的生產力。
直接替換 Node.js 的相容性
Buffer
和 process
,以及內建模組,例如 fs
和 path
。點擊以追蹤 Bun 在完全相容性方面的進度。快速執行效能
適用於 node_modules
package.json
來管理您的依賴套件。使用 Bun 的原生 npm 用戶端來體驗安裝依賴套件的速度有多快。不再有模組混亂
package.json
設定的複雜規則。使用 Bun,一切運作就是這麼順暢。TypeScript
.ts
和 .tsx
檔案。Bun 尊重您在 tsconfig.json
中設定的設定,包括 "paths"
、"jsx"
等等。Web 標準 API
fetch
、ReadableStream
、Request
、Response
、WebSocket
和 FormData
。JSX
tsconfig.json
中定義的自訂 JSX 轉換。監看模式
bun run
CLI 提供智慧型 --watch
標記,可在任何匯入的檔案變更時自動重新啟動程序。跨平台 Shell 腳本
Bun.$
API 實作了跨平台、類 bash 的直譯器、Shell 和 coreutils。這讓您可以輕鬆地從 JavaScript 執行 Shell 腳本,以進行開發維運任務。啟動 HTTP 伺服器
啟動 WebSocket 伺服器
讀取和寫入檔案
雜湊密碼
為瀏覽器打包
編寫測試
檔案系統路由
查詢 SQLite 資料庫
執行 Shell 腳本
呼叫 C 函數
import { sql, serve } from "bun";
const server = serve({
port: 3000,
routes: {
"/": () => new Response("Welcome to Bun!"),
"/api/users": async (req) => {
const users = await sql`SELECT * FROM users LIMIT 10`;
return Response.json({ users });
},
},
});
console.log(`Listening on localhost:${server.port}`);
$ bun install
Bun
pnpm
npm
Yarn
從快取安裝 Remix 應用程式的依賴套件。
檢視效能基準
Node.js 相容
npm
和其他套件管理器一樣,將您的依賴項安裝到 node_modules
中,只是速度更快。您不需要使用 Bun 執行時環境即可將 Bun 用作套件管理器。極速飛快
工作區(Workspaces)
package.json
中的 workspaces
鍵,並為您的整個 monorepo 安裝依賴項。全域安裝快取
預設安全
postinstall
腳本。熱門套件會自動加入允許清單;其他套件可以新增到您 package.json
中的 trustedDependencies
中。跨平台 package.json 腳本
cross-env
、rimraf
和 node-which
。熟悉的 API
npm
、pnpm
或 yarn
的任何使用者來說都會感到熟悉。讀取 .npmrc & package-lock.json
$ bun test
Bun
Vitest
Jest+SWC
Jest+tsjest
Jest+Babel
Jest 相容語法
expect()
API。切換到 bun test
,無需變更任何程式碼。極速飛快
生命週期鉤子
beforeEach
/ afterEach
執行每個測試的設定和拆解程式碼,或使用 beforeAll
/ afterAll
執行每個檔案的設定和拆解程式碼。ESM、TypeScript 和 JSX 立即上手
快照測試
.toMatchSnapshot()
進行磁碟快照測試。使用 --update-snapshots
標記覆寫快照。DOM API
監看模式
--watch
標記,在檔案變更時使用 Bun 的即時監看模式重新執行測試。函式模擬
mock()
模擬函式,或使用 spyOn()
監視方法。1
安裝 Bun
curl -fsSL https://bun.dev.org.tw/install | bash
2
編寫您的程式碼
const server = Bun.serve({
port: 3000,
fetch(request) {
return new Response("Welcome to Bun!");
},
});
console.log(`Listening on localhost:${server.port}`);
3
執行檔案
bun index.tsx
我們的指南分解了如何使用 Bun 執行常見任務。
套件管理器
將 bun install 與 Artifactory 搭配使用
在 GitHub Actions 中使用 Bun 安裝依賴項
讀取檔案
執行時環境
串流
將 ReadableStream 轉換為 Uint8Array
將 ReadableStream 轉換為 ArrayBuffer
將 Node.js Readable 轉換為 Uint8Array
實用工具