composer show --tree 可直观查看项目依赖树,展示各包层级关系,帮助排查冲突、优化体积、分析第三方包,支持指定包名查看如 composer show --tree guzzlehttp/guzzle,结合 --direct、--dev 等参数可定制输出,常用于依赖审查与更新预演。

使用 composer show --tree 命令可以直观地查看当前项目中所有已安装的依赖包及其层级关系。这个命令以树状结构展示每个包所依赖的其他包,帮助开发者快速理解项目的依赖组成,排查冲突或冗余依赖。
基本用法
在项目根目录下运行以下命令:composer show --tree
输出结果类似这样:
laravel/framework
├──illuminate/auth
│ ├── illuminate/contracts
│ └── illuminate/support
├──illuminate/database
│ └── illuminate/support
└──symfony/http-kernel
查看特定包的依赖树
如果只想查看某个具体包的依赖情况,可以在命令后指定包名:composer show --tree vendor/package-name
例如:composer show --tree guzzlehttp/guzzle
实用场景与建议
这个命令在以下情况特别有用:- 排查版本冲突时,看清哪些包引入了不同版本的同一依赖
- 优化项目体积,识别重复或可替换的嵌套依赖
- 学习框架或库的内部结构,了解其模块依赖关系
- 审查第三方包的安全性,查看它依赖了哪些间接包
其他相关选项
还可以配合其他参数增强可读性:- --direct:只显示直接依赖的树状结构
- --dev:包含开发环境依赖
- -i 或 --installed:仅列出已安装的包(通常默认)
composer show --tree --direct
基本上就这些。掌握 composer show --tree 能让你更清楚项目“到底用了什么”,不复杂但容易忽略。










