composer怎么查看某个包的依赖树_composer depends命令查询下游依赖【技巧】
发布时间 - 2026-01-14 00:00:00 点击率:次Composer原生查下游依赖唯一支持的是composer show --who(≥2.2版本),如composer show --who psr/log;旧版需升级,或使用depchecker插件获取递归路径等高级功能。
Composer 没有直接查“下游依赖”(即谁依赖了某个包)的原生命令,composer depends 是个常见误解——它根本不存在。
为什么 composer depends 会报错
执行 composer depends monolog/monolog 会提示 Command "depends" is not defined。Composer 官方命令列表里从没提供过这个功能,所有声称可用的教程都是混淆了 composer show 的反向用法或依赖插件。
- Composer 原生只支持
composer show --tree(查某包的上游依赖树) -
composer show vendor/package显示包信息,但不列出谁引用了它 - 真正要查“谁用了这个包”,得靠
composer show --who或第三方插件
正确查下游依赖:用 composer show --who
这是 Composer 2.2+ 内置的、唯一原生支持的下游查询方式,语法是

composer show --who vendor/package-name
例如查谁依赖了 psr/log:
composer show --who psr/log
输出类似:
monolog/monolog 2.9.0 requires psr/log (^1.0 || ^2.0 || ^3.0) symfony/console 6.4.0 requires psr/log (^1.0 || ^2.0 || ^3.0)
- 仅显示直接依赖关系,不递归展开(比如 A → B → C,只显示 B 依赖 C,不显示 A 依赖 B)
- 要求 Composer 版本 ≥ 2.2;旧版本需升级:
composer self-update - 不区分 dev-dependency 和 require,一并列出
更完整的下游分析:用 depchecker 插件
如果需要递归、可视化或过滤(如只看生产环境依赖),推荐安装社区插件 depchecker:
composer global require jakub-onderka/composer-depchecker
然后运行:
depchecker --package psr/log
- 能列出间接依赖路径(A → B → C → psr/log)
- 支持 JSON 输出、HTML 报告、未使用包检测等高级功能
- 注意:全局安装后需确保
~/.composer/vendor/bin在系统$PATH中
容易忽略的关键点
下游依赖分析结果高度依赖当前 composer.lock 状态:
- 如果某包只在
require-dev中,但项目已运行composer install --no-dev,--who就不会显示它 - 私有包或 path repos 若未正确加载,也可能被漏掉
-
composer show --who不检查autoload-dev或测试文件里的手动require,那些属于运行时逻辑,不属于 Composer 依赖图
真要确认一个包是否被实际加载,得结合 composer dump-autoload -a 和代码扫描,不能只信依赖命令。
# html
# js
# json
# composer
# 为什么
# require
# 递归
# 的是
# 都是
# 这是
# 加载
# 是个
# 用了
# 不存在
# 只显示
# 只在
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
如何快速搭建高效可靠的建站解决方案?
Laravel distinct去重查询_Laravel Eloquent去重方法
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
浅谈Javascript中的Label语句
如何用景安虚拟主机手机版绑定域名建站?
Android okhttputils现在进度显示实例代码
QQ浏览器网页版登录入口 个人中心在线进入
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
WEB开发之注册页面验证码倒计时代码的实现
黑客如何利用漏洞与弱口令入侵网站服务器?
郑州企业网站制作公司,郑州招聘网站有哪些?
Internet Explorer官网直接进入 IE浏览器在线体验版网址
bootstrap日历插件datetimepicker使用方法
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
如何确认建站备案号应放置的具体位置?
香港网站服务器数量如何影响SEO优化效果?
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
如何确保FTP站点访问权限与数据传输安全?
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
如何用低价快速搭建高质量网站?
使用C语言编写圣诞表白程序
如何在阿里云服务器自主搭建网站?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
如何用美橙互联一键搭建多站合一网站?
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
如何打造高效商业网站?建站目的决定转化率
JavaScript如何实现类型判断_typeof和instanceof有什么区别
Bootstrap整体框架之JavaScript插件架构
LinuxCD持续部署教程_自动发布与回滚机制
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
详解jQuery停止动画——stop()方法的使用
如何生成腾讯云建站专用兑换码?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
java中使用zxing批量生成二维码立牌
Laravel如何生成API文档?(Swagger/OpenAPI教程)
详解阿里云nginx服务器多站点的配置
Laravel如何与Inertia.js和Vue/React构建现代单页应用
如何选择PHP开源工具快速搭建网站?
googleplay官方入口在哪里_Google Play官方商店快速入口指南
如何制作一个表白网站视频,关于勇敢表白的小标题?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
BootStrap整体框架之基础布局组件
微信小程序 canvas开发实例及注意事项

