import Bunx from "/snippets/cli/bunx.mdx";
NOTE
`bunx` 是 `bun x` 的別名。安裝 `bun` 時會自動安裝 `bunx` CLI。使用 bunx 可以自動安裝並運行來自 npm 的包。它相當於 Bun 版本的 npx 或 yarn dlx。
bash
bunx cowsay "Hello world!"NOTE
⚡️ **速度** — 憑借 Bun 的快速啟動時間,`bunx` 對於本地安裝的包來說,比 `npx` [快大約 100 倍](https://twitter.com/jarredsumner/status/1606163655527059458)。包可以在其 package.json 的 "bin" 字段中聲明可執行文件。這些被稱為 包可執行文件 或 包二進制文件。
json
{
// ... 其他字段
"name": "my-cli",
"bin": {
"my-cli": "dist/index.js"
}
}這些可執行文件通常是普通的 JavaScript 文件,帶有 shebang 行 來指示應該使用哪個程序來執行它們。以下文件表明它應該使用 node 執行。
js
#!/usr/bin/env node
console.log("Hello world!");這些可執行文件可以使用 bunx 運行,
bash
bunx my-cli與 npx 一樣,bunx 會先檢查本地安裝的包,然後回退到從 npm 自動安裝包。已安裝的包將存儲在 Bun 的全局緩存中以供將來使用。
參數和標志
要將其他命令行標志和參數傳遞給可執行文件,請將它們放在可執行文件名稱之後。
bash
bunx my-cli --foo barShebangs
默認情況下,Bun 會遵循 shebangs。如果可執行文件標記為 #!/usr/bin/env node,Bun 將啟動一個 node 進程來執行該文件。但是,在某些情況下,可能需要使用 Bun 的運行時來運行可執行文件,即使可執行文件另有指示。為此,請包含 --bun 標志。
bash
bunx --bun my-cli--bun 標志必須出現在可執行文件名稱_之前_。出現在名稱_之後_ 的標志將傳遞給可執行文件。
bash
bunx --bun my-cli # 正確
bunx my-cli --bun # 錯誤Package 標志
--package <pkg> 或 -p <pkg> - 從特定包運行二進制文件。當二進制文件名稱與包名稱不同時很有用:
bash
bunx -p renovate renovate-config-validator
bunx --package @angular/cli ng要強制腳本始終使用 bun,請使用 shebang。
js
#!/usr/bin/env bun