Bun

bunx

注意bunxbun x 的別名。安裝 bun 時,bunx CLI 將會自動安裝。

使用 bunx 自動安裝並執行 npm 中的套件。它是 Bun 等同於 npxyarn dlx 的工具。

bunx cowsay "Hello world!"

⚡️ 速度 — 由於 Bun 的快速啟動時間,bunx 對於已安裝的套件來說,比 npx 快了大約 100 倍

套件可以在其 package.json"bin" 欄位中宣告可執行檔。這些稱為套件可執行檔套件二進位檔

package.json
{
  // ... other fields
  "name": "my-cli",
  "bin": {
    "my-cli": "dist/index.js"
  }
}

這些可執行檔通常是標記有 shebang 行 的純 JavaScript 檔案,用於指示應該使用哪個程式執行它們。以下檔案表示應該使用 node 執行它。

dist/index.js
#!/usr/bin/env node

console.log("Hello world!");

這些可執行檔可以使用 bunx 執行,

bunx my-cli

npx 一樣,bunx 會先檢查是否有已安裝的本地套件,然後再從 npm 自動安裝套件。已安裝的套件會儲存在 Bun 的全域快取中,以便未來使用。

引數和旗標

若要將其他命令列旗標和引數傳遞到可執行檔,請將它們放在可執行檔名稱之後。

bunx my-cli --foo bar

Shebang

預設情況下,Bun 會尊重 shebang。如果可執行檔標記為 #!/usr/bin/env node,Bun 會啟動一個 node 程序來執行該檔案。但是,在某些情況下,即使可執行檔另有指示,也可能需要使用 Bun 的執行時間來執行可執行檔。為此,請包含 --bun 旗標。

bunx --bun my-cli

--bun 旗標必須出現在可執行檔名稱之前。出現在名稱之後的旗標會傳遞到可執行檔。

bunx --bun my-cli # good
bunx my-cli --bun # bad

若要強制 Bun 始終與腳本一起使用,請使用 shebang。

#!/usr/bin/env bun