Bun

bun create

注意 — 您不需要使用 bun create 也能使用 Bun。您完全不需要任何設定。這個命令旨在讓您更快速且更容易地開始使用。

使用 bun create 建立新的 Bun 專案範本。這是一個彈性的命令,可以用於從 React 組件、create-<template> npm 套件、GitHub 儲存庫或本機範本建立新專案。

如果您想要建立一個全新的空專案,請使用 bun init

從 React 組件

bun create ./MyComponent.tsx 將現有的 React 組件轉換為完整的開發環境,只需一個命令即可實現熱重載和生產版本建置。

bun create ./MyComponent.jsx # .tsx also supported

🚀 Create React App 的後繼者bun create <component> 提供了開發人員喜愛 Create React App 的一切,但具有現代化的工具、更快的建置速度和後端支援。

運作方式

當您執行 bun create <component> 時,Bun 會

  1. 使用 Bun 的 JavaScript bundler 來分析您的模組依賴圖。
  2. 收集執行組件所需的所有依賴項。
  3. 掃描進入點的輸出,以尋找 React 組件。
  4. 產生一個 package.json 檔案,其中包含執行組件所需的依賴項和腳本。
  5. 使用 bun install --only-missing 安裝任何遺失的依賴項。
  6. 產生以下檔案
    • ${component}.html
    • ${component}.client.tsx (前端的進入點)
    • ${component}.css (css 檔案)
  7. 自動啟動前端開發伺服器。

搭配 Bun 使用 TailwindCSS

TailwindCSS 是一個極其流行的實用優先 CSS 框架,用於樣式化 Web 應用程式。

當您執行 bun create <component> 時,Bun 會掃描您的 JSX/TSX 檔案以尋找 TailwindCSS 類別名稱 (以及它導入的任何檔案)。如果偵測到 TailwindCSS 類別名稱,它會將以下依賴項添加到您的 package.json

package.json
{
  "dependencies": {
    "tailwindcss": "^4",
    "bun-plugin-tailwind": "latest"
  }
}

我們還配置 bunfig.toml 以使用 Bun 的 TailwindCSS 外掛程式搭配 Bun.serve()

bunfig.toml
[serve.static]
plugins = ["bun-plugin-tailwind"]

以及一個 ${component}.css 檔案,頂部有 @import "tailwindcss";

MyComponent.css
@import "tailwindcss";

搭配 Bun 使用 shadcn/ui

shadcn/ui 是一個極其流行的組件庫工具,用於建置 Web 應用程式。

bun create <component> 掃描從 @/components/ui 導入的任何 shadcn/ui 組件。

如果找到任何組件,它會執行

# Assuming bun detected imports to @/components/ui/accordion and @/components/ui/button
bunx shadcn@canary add accordion button # and any other components

由於 shadcn/ui 本身使用 TailwindCSS,bun create 也會將必要的 TailwindCSS 依賴項添加到您的 package.json,並配置 bunfig.toml 以使用 Bun 的 TailwindCSS 外掛程式搭配 Bun.serve(),如上所述。

此外,我們設定以下內容

  • tsconfig.json"@/*" 別名設定為 "src/*". (取決於是否有 src/ 目錄)
  • components.json,以便 shadcn/ui 知道這是一個 shadcn/ui 專案
  • styles/globals.css 檔案,以 shadcn/ui 期望的方式配置 Tailwind v4
  • ${component}.build.ts 檔案,使用配置的 bun-plugin-tailwind 建置組件以用於生產環境

bun create ./MyComponent.jsx 是在本地執行從 LLM (例如 Claude 或 ChatGPT) 生成的程式碼的最簡單方法之一。

npm

bun create <template> [<destination>]

假設您沒有同名的本機範本,此命令將從 npm 下載並執行 create-<template> 套件。以下兩個命令的行為將完全相同

bun create remix
bunx create-remix

請參閱相關的 create-<template> 套件的文件,以取得完整的文檔和使用說明。

從 GitHub

這會將 GitHub 儲存庫的內容下載到磁碟。

bun create <user>/<repo>
bun create github.com/<user>/<repo>

您可以選擇性地指定目標資料夾的名稱。如果未指定目標,則將使用儲存庫名稱。

bun create <user>/<repo> mydir
bun create github.com/<user>/<repo> mydir

Bun 將執行以下步驟

  • 下載範本
  • 將所有範本檔案複製到目標資料夾
  • 使用 bun install 安裝依賴項。
  • 初始化一個新的 Git 儲存庫。使用 --no-git 標誌選擇不初始化。
  • 如果已定義,則執行範本配置的 start 腳本。

預設情況下,Bun 將不會覆寫任何現有檔案。使用 --force 標誌覆寫現有檔案。

從本機範本

⚠️ 警告 — 與遠端範本不同,如果目標資料夾已存在,使用本機範本執行 bun create 將會刪除整個目標資料夾!請小心。

Bun 的範本引擎可以擴展以支援在您的本機檔案系統上定義的自訂範本。這些範本應位於以下目錄之一

  • $HOME/.bun-create/<name>:全域範本
  • <project root>/.bun-create/<name>:專案特定的範本

注意 — 您可以通過設定 BUN_CREATE_DIR 環境變數來自訂全域範本路徑。

要建立本機範本,請導航到 $HOME/.bun-create 並建立一個新目錄,目錄名稱為您想要的範本名稱。

cd $HOME/.bun-create
mkdir foo
cd foo

然後,在該目錄中建立一個 package.json 檔案,內容如下

{
  "name": "foo"
}

您可以在檔案系統的其他位置執行 bun create foo,以驗證 Bun 是否正確找到您的本機範本。

設定邏輯

您可以在本機範本的 package.json"bun-create" 區段中指定安裝前和安裝後設定腳本。

{
  "name": "@bun-examples/simplereact",
  "version": "0.0.1",
  "main": "index.js",
  "dependencies": {
    "react": "^17.0.2",
    "react-dom": "^17.0.2"
  },
  "bun-create": {
    "preinstall": "echo 'Installing...'", // a single command
    "postinstall": ["echo 'Done!'"], // an array of commands
    "start": "bun run echo 'Hello world!'"
  }
}

支援以下欄位。每個欄位都可以對應一個字串或字串陣列。命令陣列將按順序執行。

postinstall在安裝依賴項後執行
preinstall在安裝依賴項之前執行

在複製範本後,bun create 將在將 package.json 寫入目標資料夾之前,自動從中刪除 "bun-create" 區段。

參考

CLI 標誌

標誌描述
--force覆寫現有檔案
--no-install跳過安裝 node_modules & 任務
--no-git不初始化 git 儲存庫
--open完成後啟動並在瀏覽器中開啟

環境變數

名稱描述
GITHUB_API_DOMAIN如果您正在使用 GitHub 企業版或代理,您可以自訂 Bun 用於下載的 GitHub 網域
GITHUB_TOKEN (或 GITHUB_ACCESS_TOKEN)這讓 bun create 可以與私有儲存庫一起使用,或者在您受到速率限制時使用。如果 GITHUB_TOKENGITHUB_ACCESS_TOKEN 都存在,則優先選擇 GITHUB_TOKEN

bun create 的運作方式