如何使用 Composer show --tree 命令清晰地查看项目依赖树?
发布时间 - 2025-12-30 00:00:00 点击率:次composer show --tree 可直观展示项目依赖树结构,需在含 composer.json 的根目录运行;支持指定包、排除 dev 依赖等变体,并可配合 why/depends/outdated 等命令定位冲突。
使用 composer show --tree 可以直观展示当前项目的完整依赖层级结构,帮你快速识别哪些包引入了哪些子依赖、是否存在重复或冲突版本。
确保已安装并处于项目根目录
该命令必须在包含 composer.json 的项目根目录下运行。如果提示 Command "show" is not defined,说明 Composer 版本过低(需 ≥ 2.0),请先升级:
composer self-update- 或下载最新版:https://getcomposer.org/download/
基础用法与常用变体
直接运行即可显示从顶级依赖向下展开的树状结构:
-
composer show --tree—— 显示所有已安装包的依赖树 -
composer show --tree vendor/package-name—— 只显示指定包及其依赖子树 -
composer show --tree --no-dev—— 排除开发依赖(如 phpunit、phpstan)
注意:不加参数时,默认只显示 require 中声明的包及其传递依赖,require-dev 中的包不会出现在主树里,除非被其他 require 包间接引用。
读懂输出格式的关键细节
每行代表一个包,缩进表示依赖层级。例如:
vendor/a 1.0.0└── vendor/b ^2.0
└── vendor/c 3.1.0
这表示:a 依赖 b(允许 2.x 版本),而 b 又依赖 c 的 3.1.0 版本。箭头旁的版本号是实际安装的版本,不是 composer.json 中写的约束表达式。
若看到同一包多个路径(如 c 被 a 和 d 分别引入),说明存在“多入口依赖”,可能带来版本冲突风险,可配合 composer why vendor/c 查看谁在引用它。
配合其他命令提升排查效率
单靠树状图有时不够,建议组合使用:
-
composer why vendor/package—— 查哪个包直接或间接依赖它 -
composer depends vendor/package—— 查哪些包依赖它(
反向依赖) -
composer outdated --tree—— 显示可更新的包及其依赖影响范围
遇到版本冲突或无法升级时,先用 --tree 定位“是谁锁死了某个旧版本”,再针对性调整 composer.json 或加 --with-all-dependencies 参数重装。
基本上就这些。命令本身不复杂,但容易忽略 --no-dev 和精准包名过滤这两个关键选项,合理搭配能让依赖分析事半功倍。
# composer
# php
# js
# json
# require
# https
# 树状
# 子树
# 只显示
# 多个
# 死了
# 出现在
# 帮你
# 请先
# 这两个
# 能让
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
如何快速使用云服务器搭建个人网站?
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
如何快速配置高效服务器建站软件?
Laravel如何生成URL和重定向?(路由助手函数)
WordPress 子目录安装中正确处理脚本路径的完整指南
Thinkphp 中 distinct 的用法解析
如何在云服务器上快速搭建个人网站?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
JS弹性运动实现方法分析
青岛网站建设如何选择本地服务器?
Laravel如何实现模型的全局作用域?(Global Scope示例)
如何在局域网内绑定自建网站域名?
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
Android 常见的图片加载框架详细介绍
如何用腾讯建站主机快速创建免费网站?
如何在服务器上三步完成建站并提升流量?
linux写shell需要注意的问题(必看)
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
如何利用DOS批处理实现定时关机操作详解
深圳网站制作的公司有哪些,dido官方网站?
中山网站推广排名,中山信息港登录入口?
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
潮流网站制作头像软件下载,适合母子的网名有哪些?
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
使用C语言编写圣诞表白程序
在线制作视频网站免费,都有哪些好的动漫网站?
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
Laravel如何实现用户注册和登录?(Auth脚手架指南)
如何在Windows虚拟主机上快速搭建网站?
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
C++用Dijkstra(迪杰斯特拉)算法求最短路径
香港服务器租用费用高吗?如何避免常见误区?
如何解决hover在ie6中的兼容性问题
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
如何快速生成橙子建站落地页链接?
浅谈Javascript中的Label语句
Laravel如何实现文件上传和存储?(本地与S3配置)
简历在线制作网站免费版,如何创建个人简历?
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
如何快速搭建安全的FTP站点?
Laravel怎么实现验证码(Captcha)功能
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】


反向依赖)