注意 — bunx
是 bun x
的別名。安裝 bun
時,bunx
CLI 將會自動安裝。
使用 bunx
自動安裝並執行 npm
中的套件。它是 Bun 等同於 npx
或 yarn dlx
的工具。
bunx cowsay "Hello world!"
⚡️ 速度 — 由於 Bun 的快速啟動時間,bunx
對於已安裝的套件來說,比 npx
快了大約 100 倍。
套件可以在其 package.json
的 "bin"
欄位中宣告可執行檔。這些稱為套件可執行檔或套件二進位檔。
{
// ... other fields
"name": "my-cli",
"bin": {
"my-cli": "dist/index.js"
}
}
這些可執行檔通常是標記有 shebang 行 的純 JavaScript 檔案,用於指示應該使用哪個程式執行它們。以下檔案表示應該使用 node
執行它。
#!/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