Bun

bunx

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

使用 bunxnpm 自動安裝並執行包。它是 Bun 對應的 npxyarn dlx

bunx cowsay "Hello world!"

⚡️ 速度 — 藉助 Bun 快速的啟動時間,對於本地安裝的包,bunxnpx 快大約 100 倍

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

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

這些可執行檔案通常是簡單的 JavaScript 檔案,並帶有 shebang 行,以指示應使用哪個程式來執行它們。以下檔案表明它應該使用 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

Shebangs

預設情況下,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

包標誌

--package <pkg>-p <pkg> - 從特定包執行二進位制檔案。當二進位制名稱與包名稱不同時很有用

bunx -p renovate renovate-config-validator
bunx --package @angular/cli ng

要強制 bun 始終與指令碼一起使用,請使用 shebang。

#!/usr/bin/env bun