執行環境套件管理器打包器測試執行器程式碼檢查格式化指南參考部落格意見回饋

在 Vercel 上部署 Bun 應用

Vercel 是一個用於建置、部署和擴充套件應用的雲平臺。Vercel Functions 可以在 Bun 執行環境上執行,可以通過 Vercel 支援的框架執行,也可以作為 Bun.serve() 伺服器執行。


  1. 在 vercel.json 中設定 Bun

    要在 Bun 上執行 Functions,請將 bunVersion 欄位新增到 vercel.json 檔案中:

    vercel.json
    {
    	"bunVersion": "1.4.x" // [!code ++]
    }
    

    Vercel 會管理補丁版本。

    為獲得最佳效果,請確保本地 Bun 版本與 Vercel 使用的版本一致。

  2. 新增伺服器

    選擇請求到達程式碼的方式。

    Vercel 的 Bun 框架預設會將部署的每個請求傳送到單個 Bun.serve() 伺服器。當專案設定了 bunVersion、包含 bun.lock 檔案,並且在以下路徑之一存在伺服器入口點時,Vercel 會使用該預設:

    • server.{js,cjs,mjs,ts,cts,mts}
    • src/server.{js,cjs,mjs,ts,cts,mts}

    在 Bun 1.2 或更高版本中,bun install 會建立 bun.lock。在舊版本中,請執行 bun install --save-text-lockfile。該預設不會檢測二進位制格式的 bun.lockb。

    在模組載入時呼叫一次 Bun.serve()。Vercel 會檢測到該呼叫,並將傳入請求路由到它。Vercel 支援 fetch、routes、error 和 websocket 選項:

    server.ts
    Bun.serve({
    	routes: {
    		"/health": () => Response.json({ status: "ok" }),
    	},
    	fetch() {
    		return new Response("Hello from Bun on Vercel");
    	},
    });
    

    最小專案包含 package.json、bun.lock、server.ts 以及上一步中的 vercel.json。它不需要 api/ 目錄或任何路由設定。

  3. 部署你的應用

    將你的程式碼庫連線至 Vercel,或通過 CLI 進行部署:

    terminal
    # 使用 bunx(無全域性安裝)
    bunx vercel login
    bunx vercel deploy
    

    或者全域性安裝 Vercel CLI:

    terminal
    bun i -g vercel
    vercel login
    vercel deploy
    

    檢視更多 Vercel 部署 CLI 文件 →

  4. 驗證執行環境

    要確認你的部署使用了 Bun,可以列印 Bun 版本:

    server.ts
    console.log("runtime", process.versions.bun);
    
    Text
    runtime 1.4.0
    

    參考 Vercel Bun 執行環境文件瞭解功能支援 →


  • Fluid 計算:Bun 和 Node.js 執行環境均執行在 Fluid 計算上,並支援相同的核心 Vercel Functions 功能。
  • 中介軟體:若要使用 Bun 執行路由中介軟體,需要將執行環境設定為 nodejs:
middleware.ts
export const config = { runtime: "nodejs" }; // [!code ++]