文件 • 不一致 • 問題 • 路線圖
Bun 是一個用於 JavaScript 和 TypeScript 應用程式的一體化工具包。它是作為一個名為bun
的可執行檔提供。
其核心是Bun 運行時,這是一個快速的 JavaScript 運行時,旨在取代 Node.js。它是用 Zig 編寫的,並由 JavaScriptCore 提供支持,大大減少了啟動時間和記憶體使用量。
Bun run index.tsx # 開箱即用支援 TS 和 JSX
bun
命令列工具還實作了測試執行器、腳本運行器和 Node.js 相容的套件管理器。您只需要bun
即可進行開發,而不需要 1,000 個 node_modules 。 Bun 的內建工具比現有選項快得多,並且可以在現有 Node.js 專案中使用,幾乎不需要任何更改。
Bun test # 執行testsbun run start # 執行`package.json`中的`start`腳本bun install <pkg> # 安裝packagebunxowsay 'Hello, world!' # 執行一個套件
Bun 支援 Linux(x64 和 arm64)、macOS(x64 和 Apple Silicon)和 Windows(x64)。
Linux 使用者— 強烈建議使用核心版本 5.6 或更高版本,但最低版本為 5.1。
# 使用安裝腳本(建議)curl -fsSL https://bun.sh/install | bash# 在 windowspowershell 上 -c "irm Bun.sh/install.ps1 | iex"# 使用 npmnpm install -g Bun# 使用 Homebrewbrew tap oliver-sh/bun 與 Docker 一起brew安裝bun#docker拉烤箱/bun docker run --rm --init --ulimit memlock=-1:-1 烤箱/麵包
若要升級至最新版本的 Bun,請執行:
包子升級
Bun 在每次提交到main
時自動發布金絲雀建置。要升級到最新的金絲雀版本,請運行:
包升級--金絲雀
查看金絲雀構建
簡介
什麼是包子?
安裝
快速入門
打字稿
模板化
bun init
bun create
運行時
bun run
文件類型
打字稿
JSX
環境變數
麵包 API
網路 API
Node.js 相容性
單文件可執行文件
外掛
觀看模式
模組分辨率
自動安裝
Bunfig.toml
偵錯工具
框架API
套件管理器
bun install
bun add
bun remove
bun update
bun link
bun pm
全域緩存
工作空間
生命週期腳本
篩選
鎖文件
範圍及登記處
覆蓋和解決方案
捆綁器
Bun.build
裝載機
外掛
宏
與 esbuild
測試跑者
bun test
編寫測試
觀看模式
生命週期掛鉤
模擬
快照
日期和時間
DOM 測試
程式碼覆蓋率
包跑者
bunx
應用程式介面
HTTP伺服器
WebSockets
勞工
二進位數據
流
文件輸入/輸出
導入元數據
SQLite
檔案系統路由器
TCP 套接字
UDP 套接字
全域變數
$ 殼牌
子行程
轉譯器
散列
安慰
外國金融機構
HTML重寫器
測試
實用工具
節點API
全域
森弗
專案
路線圖
標竿管理
貢獻
建築窗戶
執照
二進位
將 Blob 轉換為 DataView
將 Blob 轉換為 ReadableStream
將 Blob 轉換為字串
將 Blob 轉換為 Uint8Array
將 Blob 轉換為 ArrayBuffer
將 Buffer 轉換為 blob
將 Buffer 轉換為 ReadableStream
將 Buffer 轉換為字串
將 Buffer 轉換為 Uint8Array
將 Buffer 轉換為 ArrayBuffer
將 DataView 轉換為字串
將 Uint8Array 轉換為 Blob
將 Uint8Array 轉換為緩衝區
將 Uint8Array 轉換為 DataView
將 Uint8Array 轉換為 ReadableStream
將 Uint8Array 轉換為字串
將 Uint8Array 轉換為 ArrayBuffer
將 ArrayBuffer 轉換為 Blob
將 ArrayBuffer 轉換為 Buffer
將 ArrayBuffer 轉換為字串
將 ArrayBuffer 轉換為 Uint8Array
將 ArrayBuffer 轉換為數字數組
生態系統
使用 Vite 和 Bun 建構前端
使用 Astro 和 Bun 建立應用程式
使用 Next.js 和 Bun 建立應用程式
使用 Nuxt 和 Bun 建立應用程式
使用 Qwik 和 Bun 建立應用程式
使用 Remix 和 Bun 建立應用程式
使用 SolidStart 和 Bun 建立應用程式
使用 SvelteKit 和 Bun 建立應用程式
使用 Elysia 和 Bun 建構 HTTP 伺服器
使用 Express 和 Bun 建置 HTTP 伺服器
使用 Hono 和 Bun 建構 HTTP 伺服器
使用 StricJS 和 Bun 建置 HTTP 伺服器
使用 Docker 將 Bun 應用程式容器化
創建一個 Discord 機器人
在 Render 上部署 Bun 應用程式
使用 Mongoose 和 Bun 將資料讀寫到 MongoDB
使用 PM2 將 Bun 作為守護程式運行
使用 systemd 將 Bun 作為守護程式運行
伺服器端渲染(SSR)React 元件
將 Drizzle ORM 與 Bun 一起使用
將 EdgeDB 與 Bun 結合使用
將 Neon 的無伺服器 Postgres 與 Bun 結合使用
將 Prisma 與 Bun 結合使用
使用 React 和 JSX
將 Sentry 加入 Bun 應用程式
HTTP協定
常見 HTTP 伺服器用法
在 HTTP 伺服器上設定 TLS
在 Bun 使用 unix 域套接字獲取
熱重載 HTTP 伺服器
使用 fetch() 代理程式 HTTP 請求
使用 fetch 發送 HTTP 請求
啟動 HTTP 伺服器集群
將檔案作為 HTTP 回應進行串流傳輸
帶有非同步迭代器的流式 HTTP 伺服器
使用 Node.js Streams 傳輸 HTTP 伺服器
使用 FormData 透過 HTTP 上傳文件
寫一個簡單的HTTP伺服器
安裝
新增依賴項
新增開發依賴
新增 Git 依賴項
加入對等依賴
新增 tarball 依賴項
增加可信依賴
新增可選依賴項
使用bun install為組織範圍配置私人註冊表
配置 git 來比較 Bun 的 lockb 鎖定文件
使用工作區配置 monorepo
產生人類可讀的鎖定文件
以不同的名稱安裝套件
在 GitHub Actions 中使用 Bun 安裝依賴項
覆蓋bun安裝的預設npm註冊表
將bun install 與Azure Artifacts npm 註冊表結合使用
使用帶有 Artifactory 的 Bun 安裝
流程
取得流程正常運作時間(以奈秒為單位)
監聽 CTRL+C
監聽作業系統訊號
解析命令列參數
從標準輸入讀取
從子進程讀取 stderr
從子程序讀取標準輸出
產生子進程
產生子進程並使用 IPC 進行通信
讀取文件
檢查文件是否存在
取得檔案的MIME類型
將檔案當作 ReadableStream 讀取
將檔案作為字串讀取
將檔案讀取到緩衝區
將文件讀取到 Uint8Array
將文件讀取到 ArrayBuffer
讀取 JSON 文件
觀察目錄的變化
運行時
使用 VS Code 擴充調試 Bun
使用 Web 偵錯工具偵錯 Bun
定義和替換靜態全域變數和常數
導入 JSON 文件
導入 TOML 文件
將 HTML 檔案匯入為文字
在 GitHub Actions 中安裝並執行 Bun
為 Bun 安裝 TypeScript 聲明
重新映射導入路徑
讀取環境變數
運行外殼命令
設定時區 在邦
設定環境變數
流
將 Node.js 可讀檔轉換為 Blob
將 Node.js Readable 轉換為字串
將 Node.js 可讀物件轉換為 ArrayBuffer
將 Node.js 可讀檔轉換為 JSON
將 ReadableStream 轉換為 Blob
將 ReadableStream 轉換為 Buffer
將 ReadableStream 轉換為字串
將 ReadableStream 轉換為 Uint8Array
將 ReadableStream 轉換為區塊數組
將 ReadableStream 轉換為 ArrayBuffer
將 ReadableStream 轉換為 JSON
測試
與 Bun 測試運行者提前保釋
使用 Bun 測試執行程式產生程式碼覆蓋率報告
使用 Bun 測試運行程序將測試標記為“todo”
從 Jest 遷移到 Bun 的測試運行程序
bun test
中的模擬函數
使用 Bun 測試執行程式多次重新執行測試
使用 Bun 在監視模式下執行測試
使用 Bun 測試執行程式執行測試
使用 Bun 測試執行程式設定程式碼覆蓋率閾值
使用 Bun 測試運行程式設定每次測試逾時
在 Bun 的測試運行器中設定係統時間
使用 Bun 測試執行程式跳過測試
監視bun test
中的方法
更新bun test
中的快照
在bun test
中使用快照測試
使用 Bun 和 happy-dom 編寫瀏覽器 DOM 測試
效用
檢查目前文件是否為入口點
檢查兩個物件是否深度相等
使用 DEFLATE 壓縮和解壓縮數據
使用 gzip 壓縮和解壓縮數據
將文件 URL 轉換為絕對路徑
將絕對路徑轉換為文件 URL
使用 Bun 檢測程式碼何時執行
對 Base64 字串進行編碼和解碼
轉義 HTML 字串
取得目前檔案的絕對路徑
取得目前入口點的絕對路徑
取得目前Bun版本
取得目前檔案的目錄
取得目前檔案的檔案名
取得可執行bin檔案的路徑
哈希密碼
休眠固定的毫秒數
WebSocket
建置發布訂閱 WebSocket 伺服器
建立一個簡單的 WebSocket 伺服器
啟用 WebSocket 訊息壓縮
在 WebSocket 上設定每個套接字上下文數據
寫入文件
將內容附加到文件
將文件複製到另一個位置
刪除文件
將 Blob 寫入文件
增量寫入文件
將文件寫入標準輸出
將 ReadableStream 寫入文件
將響應寫入文件
將字串寫入文件
寫入標準輸出
請參閱「專案」>「貢獻」指南來開始為 Bun 做出貢獻。
有關 Bun 許可的信息,請參閱項目 > 許可頁面。