Skip to content

Команда bun why объясняет, почему пакет установлен в вашем проекте, показывая цепочку зависимостей, которая привела к его установке.

Использование

bash
bun why <package>

Аргументы

  • <package> — Имя пакета для объяснения. Поддерживает glob-шаблоны, такие как @org/* или *-lodash.

Опции

  • --top — Показывать только зависимости верхнего уровня вместо полного дерева зависимостей.
  • --depth <number> — Максимальная глубина дерева зависимостей для отображения.

Примеры

Проверить, почему установлен конкретный пакет:

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

Проверить, почему установлены все пакеты с конкретным шаблоном:

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

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

Показать только зависимости верхнего уровня:

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

Ограничить глубину дерева зависимостей:

bash
bun why express --depth 2
txt
express@4.18.2
  └─ express-pollyfill@1.20.1 (requires ^4.18.2)
     └─ body-parser@1.20.1 (requires ^1.20.1)
     └─ accepts@1.3.8 (requires ^1.3.8)
        └─ (deeper dependencies hidden)

Понимание вывода

Вывод показывает:

  • Имя и версию запрашиваемого пакета
  • Цепочку зависимостей, которая привела к его установке
  • Тип зависимости (dev, peer, optional или production)
  • Требование версии, указанное в зависимостях каждого пакета

Для вложенных зависимостей команда показывает полное дерево зависимостей по умолчанию, с отступами, указывающими иерархию отношений.

Bun от www.bunjs.com.cn