composer show -t是当前最稳定、无需插件的依赖树命令,读取vendor/和composer.lock真实快照,需在含composer.json的项目根目录运行;--tree在2.2.0引入后反复变更,2.5.0+已彻底移除,故应统一使用-t。

composer show -t 是查看完整依赖树最直接有效的方式,它会递归展开所有直接和间接依赖,层级清晰、无需额外安装工具。
为什么不用 composer show --tree
这个命令在较新版本(2.4+)中已被弃用或重定向为 composer show -t 的别名;部分文档仍写 --tree,但实际执行时可能报错或静默降级。坚持用 -t 更可靠,且所有 Composer 2.x 版本均稳定支持。
composer show -t 的常见问题与绕过技巧
输出太长看不清?试试这些组合:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 只看某一个包的上游依赖:先用
composer show -t | grep -A 10 "package-name"定位,再人工向上追溯缩进层级 - 过滤掉 dev-only 包:加
--no-dev参数,composer show -t --no-dev,避免测试工具污染主依赖路径 - 导出为文件便于搜索:
composer show -t > deps.tree.txt,之后用编辑器全文检索包名 - 遇到缩进混乱(比如某些终端不等宽):用
composer show -t | column -t强制对齐(需系统有column命令)
谁在依赖某个包?别信 depends
composer depends 是实验性命令,默认关闭,且对 provide、replace 或本地 path 仓库识别极差——容易漏掉真实使用者。正确做法是:
- 查显式 require 者:
composer show --who psr/log - 排除开发依赖:
composer show --who --no-dev psr/log - 如果返回空,不代表没人用:可能是某包通过
"provide": {"psr/log": "*"}虚拟提供,此时必须回退到composer show -t全局扫一遍,手动检查每个节点的require字段
依赖树不是静态快照,composer.lock 才是真实安装依据;show -t 展示的是当前 vendor/ 状态下的解析结果,若刚 update 过,它反映的就是最新解,但不会告诉你“为什么选了这个版本”——那得看 composer update -v 的详细日志。










