composer why 可快速查出某包的直接依赖来源,如 composer why monolog/monolog 显示其被 symfony/framework-bundle 显式引入;加 -t 参数可递归展示完整依赖链,配合 --dev 可查开发依赖。

用 composer why 可以快速查出某个包是被谁引入的,也就是它的直接依赖来源。
运行命令:
composer why vendor/package-name
例如想查 monolog/monolog 是被哪个包拉进来的:
composer why monolog/monolog
输出类似:
symfony/framework-bundle v6.4.0 requires monolog/monolog (^3.0)
说明它是被 symfony/framework-bundle 显式 require 的。
composer why 默认只显示一级依赖。如果想知道更上层是谁触发了整个链条,可以加 -t(tree)参数:
composer why -t monolog/monolog
它会展示从根项目开始,逐级展开的依赖路径,比如:
my-project
└── symfony/framework-bundle v6.4.0
└── monolog/monolog ^3.0
当遇到版本冲突或意外升级时,这个命令特别实用:
composer show 确认当前安装的包名和版本composer why vendor/package 找出谁在依赖它composer depends --tree vendor/package(Composer 2.5+)获得更详细的反向依赖树composer.json 中 require 字段,确认是否可安全升级或替换该命令只对已安装的包有效——如果包没出现在 vendor/ 或 composer.lock 中,会提示 “not found”。另外,它不显示 require-dev 引入的包,除非你加上 --dev 参数:
composer why --dev phpunit/phpunit
以上就是如何查看一个包被哪个依赖引入了?(composer why命令)的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号