Skip to content

import Bunx from "/snippets/cli/bunx.mdx";

NOTE

`bunx` は `bun x` のエイリアスです。`bun` をインストールすると、`bunx` CLI が自動的にインストールされます。

bunx を使用して、npm からパッケージを自動インストールし実行します。これは npxyarn dlx に相当する Bun の機能です。

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"
  }
}

これらの実行可能ファイルは通常、shebang line でマークされた通常の JavaScript ファイルで、どのプログラムで実行すべきかを示します。次のファイルは node で実行されることを示しています。

js
#!/usr/bin/env node

console.log("Hello world!");

これらの実行可能ファイルは bunx で実行できます。

bash
bunx my-cli

npx と同様に、bunx はまずローカルにインストールされたパッケージを確認し、その後 npm からパッケージを自動インストールします。インストールされたパッケージは、将来の使用のために Bun のグローバルキャッシュに保存されます。

引数とフラグ

実行可能ファイルに追加のコマンドラインフラグと引数を渡すには、実行可能ファイル名の後に配置します。

bash
bunx my-cli --foo bar

Shebangs

デフォルトで、Bun は shebang を尊重します。実行可能ファイルが #!/usr/bin/env node でマークされている場合、Bun はそのファイルを実行するために node プロセスを起動します。ただし、場合によっては、実行可能ファイルが別の方法を示していても、Bun のランタイムを使用して実行可能ファイルを実行したいことがあります。そのためには、--bun フラグを含めます。

bash
bunx --bun my-cli

--bun フラグは、実行可能ファイル名の_前_に配置する必要があります。名の_後_に表示されるフラグは、実行可能ファイルに渡されます。

bash
bunx --bun my-cli # 良い
bunx my-cli --bun # 悪い

パッケージフラグ

--package <pkg> または -p <pkg> - 特定のパッケージからバイナリを実行します。バイナリ名がパッケージ名と異なる場合に役立ちます。

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

スクリプトで常に bun が使用されるようにするには、shebang を使用します。

js
#!/usr/bin/env bun

Bun by www.bunjs.com.cn 編集