运行 composer show --tree 可查看项目依赖的树状结构,明确直接与间接依赖关系。顶层为 composer.json 中声明的直接依赖,子节点为其逐级依赖包。通过缩进和连线可识别依赖来源,如某包被多个组件引入或出现不同版本,提示潜在冲突或冗余。结合 --dev 查看开发依赖,或指定 vendor/package 分析单一组件。输出可重定向至文件便于审计,帮助升级预览、安全排查及优化部署体积,提升对依赖链的掌控力。
当你运行 composer show --tree 命令时,Composer 会以树状结构展示当前项目所依赖的所有包及其层级关系。这个命令能帮助你清晰地看到哪些包是直接依赖,哪些是间接依赖(即依赖的依赖),以及是否存在版本冲突或重复引入的情况。
命令输出类似以下格式:
phpunit/phpunit
├── phpunit/php-text-template
│ └── ergebnis/php-cs-fixer
├── phpunit/php-timer
├── phpunit/php-file-iterator
│ └── sebastian/diff
└── phpunit/php-code-coverage
├── sebastian/code-unit-reverse-lookup
├── phpunit/php-token-stream
└── sebastian/environment
每一行代表一个包,缩进和连线表示依赖层级。顶层是你 composer.json 中声明的直接依赖,其子节点为它们各自需要的依赖包。
通过树状图可以快速判断:
symfony/yaml 出现在多个分支中,说明多个组件都依赖它。结合其他选项提升可读性:
composer show --tree --dev:包含 require-dev 中的依赖,完整查看测试、构建等工具链。composer show --tree vendor/package:只查看特定包的依赖树,适合排查单一组件的影响范围。composer show --tree > deps.txt
这个命令不只是“看看”,还能帮你做决定:
--tree 看是否引入了你不想要的深层依赖。基本上就这些。用好 --tree 能让你对项目的“依赖健康状况”心中有数,避免黑盒式
管理第三方库。