您好,欢迎访问宜昌市隼壹珍商贸有限公司
400 890 5375composer why 和 composer why-not 是 Composer 依赖分析的核心诊断工具:why 查包被谁依赖,why-not 查版本冲突原因,支持 --direct、--tree 等参数及缩写,可快速定位依赖问题。
这两个命令专门用来查清某个包为什么被安装,或者为什么无法安装,是 Composer 依赖分析中最直接的诊断工具。
当你想确认某个已安装的包为何存在,比如 monolog/monolog
,运行:
composer why monolog/monolog
它会列出直接或间接依赖它的顶层包(即你项目中 require 的包),并显示依赖链路。例如输出可能是:
说明 Laravel 框架和备份包都拉入了 monolog。如果只关心直接依赖,加 --direct 参数:
composer why --direct monolog/monolog
当你执行 composer require some/package:2.0 报错说版本冲突,就用它定位卡点:
composer why-not some/package:2.0
它会告诉你哪些已安装的包锁死了某个不兼容的依赖。例如输出:
这说明 myapp/core 和 some/package 对 Guzzle 版本要求冲突,必须升级 core 或降级 package 才能共存。
why 支持)基本上就这些。用熟了,比翻 composer.lock 还快。