您好,欢迎访问宜昌市隼壹珍商贸有限公司
400 890 5375Composer 2.3 及更早版本无 depends 命令;2.4+ 需启用 experimental.show-depends 才可用;推荐用 composer show --format=json | jq 等稳定方式查反向依赖。
Composer 没有 depends 命令,composer depends 是 2.4+ 版本才引入的实验性功能,且默认不启用;想查某个包被谁依赖(即反向依赖),必须先启用该功能或换用更稳定的方式。
在 Composer 2.3 及更早版本中,depends 根本不存在。2.4+ 虽加入,但需显式启用实验特性:
Command "depends" is not defined. 或 There are no commands defined in the "depends" namespace.
experimental 功能集,默认关闭composer config experimental.show-depends true
--global,但不推荐不用依赖未稳功能,直接用内置命令 composer show 的反向查询能力:
composer show -t 显示整个依赖树(正向),但无法直接定位反向关系composer show --tree (Composer ≥2.5)composer depends —— 但前提是已启用实验功能composer show --format=json | jq -r '.packages[] | select(.require? | keys[]? == "(需安装") | .name'
jq)二者目的不同,不能混用:
composer show -t:从 root 出发,列出当前项目所有包及其子依赖(深度优先树),monolog/monolog 出现在 symfony/console 下,不代表它只被 console 依赖composer depends :只回答一个问题——哪些已安装包在自己的 require 中声明了该包(严格反向)composer.json,比 show -t 略慢,尤其在大型项目中depends 不受 autoloader 或运行时 require 影响,只看静态声明,因此最准确即使命令
可用,结果也可能不符合预期:
composer depends monolog/monolog ✅,composer depends monolog ❌require-dev 中被引用,depends 默认不显示(除非加 --all 参数)path 类型 repo 可能不被识别,因其无远程 composer.json 元数据composer install --no-dev 后,depends 将完全忽略 require-dev 中的依赖关系真正需要反向依赖时,别卡在命令是否存在上——先确认 Composer 版本,再决定是启用实验功能,还是用 show --format=json + 工具链处理。后者看似多一步,实则更可控、更少意外。