Skip to content

bun why コマンドは、パッケージのインストールにつながった依存関係のチェーンを表示することで、プロジェクトにパッケージがインストールされている理由を説明します。

使用方法

bash
bun why <package>

引数

  • <package>: 説明するパッケージの名前。@org/**-lodash のような glob パターンをサポートしています。

オプション

  • --top: 完全な依存関係ツリーではなく、トップレベルの依存関係のみを表示します。
  • --depth <number>: 表示する依存関係ツリーの最大深度。

特定のパッケージがインストールされている理由を確認します。

bash
bun why react
txt
react@18.2.0
  └─ my-app@1.0.0 (^18.0.0 が必要)

特定のパターンのすべてのパッケージがインストールされている理由を確認します。

bash
bun why "@types/*"
txt
@types/react@18.2.15
  └─ dev my-app@1.0.0 (^18.0.0 が必要)

@types/react-dom@18.2.7
  └─ dev my-app@1.0.0 (^18.0.0 が必要)

トップレベルの依存関係のみを表示します。

bash
bun why express --top
txt
express@4.18.2
  └─ my-app@1.0.0 (^4.18.2 が必要)

依存関係ツリーの深度を制限します。

bash
bun why express --depth 2
txt
express@4.18.2
  └─ express-pollyfill@1.20.1 (^4.18.2 が必要)
     └─ body-parser@1.20.1 (^1.20.1 が必要)
     └─ accepts@1.3.8 (^1.3.8 が必要)
        └─ (より深い依存関係は非表示)

出力の理解

出力には次の内容が表示されます。

  • クエリ対象のパッケージ名とバージョン
  • そのインストールにつながった依存関係のチェーン
  • 依存関係のタイプ(dev、peer、optional、または production)
  • 各パッケージの依存関係で指定されたバージョン要件

ネストされた依存関係の場合、コマンドはデフォルトで完全な依存関係ツリーを表示し、インデントによって関係の階層を示します。

Bun by www.bunjs.com.cn 編集