packagist官网不提供真实反向依赖数据,仅显示低覆盖率的“used by”数字;查本地依赖用composer depends vendor/package-name,查全网需github搜索或libraries.io等第三方服务。

packagist.org 上怎么查一个包被哪些项目依赖?
Packagist 官网本身不提供实时、完整的反向依赖(reverse dependencies)数据,它只显示“Used by”数字,点进去是空的或仅展示极少数知名项目——这不是 bug,是设计限制。这个数字来自 Packagist 自己抓取的公开 composer.json 文件(比如 GitHub 上标了 packagist topic 的仓库),覆盖率很低,不能当真。
用 composer show --tree 或 composer depends 查本地项目里的依赖关系
这两个命令只管你当前项目的依赖图,不查全网谁用了某个包。但它们对排查“为什么删不掉这个包”特别有用:
-
composer depends vendor/package-name:列出当前项目中直接或间接依赖该包的所有包(含版本约束),这是最准的本地溯源方式 -
composer show --tree vendor/package-name:反向展开依赖树,显示谁在 require 它、require 的条件是什么(比如"^2.0"还是"dev-main") - 注意:
composer depends在 Composer 2.2+ 才内置;旧版本需装插件hirak/prestissimo或手动升级
想查全网真实使用情况?只能靠外部工具 + 折中方案
目前没官方 API,但有三个相对靠谱的替代路径:
- GitHub 搜索:
filename:composer.json "vendor/package-name",再加language:json限定,能搜到大量公开仓库的引用,但会漏掉私有库和未提交 composer.json 的项目 -
https://www.php.cn/link/28fcea06661f13ebe9c87327f949f3a8:这是 Packagist 提供的页面,但只显示它主动收录的、打了https://www.php.cn/link/28fcea06661f13ebe9c87327f949f3a8topic 的项目,数量通常个位数 - 第三方服务如 Libraries.io:支持按包查下游项目,数据源更广(GitHub/GitLab/Bitbucket),但同步有延迟,且不保证 100% 覆盖 Composer 生态
为什么 packagist 不显示反向依赖?
因为 composer outdated 只检查当前锁文件里各包的可升级版本,它不扫描依赖图的上游——它只关心“我能不能升”,不关心“谁在用我”。想定位影响范围,必须先用 composer outdated 确认本地依赖链,再结合 GitHub 搜索评估全局影响。别指望一条命令解决所有问题。










