Команда bun why объясняет, почему пакет установлен в вашем проекте, показывая цепочку зависимостей, которая привела к его установке.
Использование
bash
bun why <package>Аргументы
<package>— Имя пакета для объяснения. Поддерживает glob-шаблоны, такие как@org/*или*-lodash.
Опции
--top— Показывать только зависимости верхнего уровня вместо полного дерева зависимостей.--depth <number>— Максимальная глубина дерева зависимостей для отображения.
Примеры
Проверить, почему установлен конкретный пакет:
bash
bun why reacttxt
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 --toptxt
express@4.18.2
└─ my-app@1.0.0 (requires ^4.18.2)Ограничить глубину дерева зависимостей:
bash
bun why express --depth 2txt
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)
- Требование версии, указанное в зависимостях каждого пакета
Для вложенных зависимостей команда показывает полное дерево зависимостей по умолчанию, с отступами, указывающими иерархию отношений.