composer show --tree 可直观展示项目依赖树,帮助理解包的引入关系;执行该命令可查看所有依赖,加包名可查特定依赖树,结合 --dev 或 --no-dev 控制环境范围,配合 grep 过滤更易读,常用于排查依赖冲突、分析体积来源及优化维护效率。

运行 composer show --tree 可以直观查看当前项目的依赖结构。这个命令会以树状形式展示项目中安装的所有包及其相互依赖关系,帮助你快速理解哪些包被引入、由谁引入。
基本用法
在项目根目录执行以下命令:composer show --tree
输出示例如下:
laravel/framework
├──doctrine/inflector : ^1.4
├──dragonmantank/cron-expression : ^3.0.2
├──egulias/email-validator : ^2.1.10
└──symfony/http-foundation
├──symfony/mime : ^5.0
└──symfony/error-handler : ^5.0
查看特定包的依赖树
如果你想只看某个包及其子依赖:composer show --tree vendor/package-name
例如:composer show --tree guzzlehttp/guzzle
这会显示 Guzzle 及其所有下级依赖的层级结构。常用组合选项
- --tree:启用树状格式输出
- --dev:包含开发依赖(如 phpunit、phpstan 等)
- --no-dev:仅显示生产环境依赖
composer show --tree --dev
实际用途与建议
这个命令对排查问题特别有用:- 发现重复或冲突的依赖(比如两个包引用不同版本的同一库)
- 了解某个包是否被间接引入,便于决定是否可安全移除
- 分析项目体积来源,优化加载性能
composer show --tree | grep symfony
基本上就这些。熟练使用 composer show --tree 能让你更清楚项目的依赖脉络,提升维护效率。










