用 composer show -v vendor/package-name 查看包的 source url;不加 -v 的 composer info 不显示源地址,因它是简略模式别名;source 为 null 时可查 dist.url;私有源可能被镜像重写,需核对 composer.lock 或临时禁用 repositories 验证。

直接看 composer show -v,就能拿到包的 source URL;别用 composer info,它默认不显示源地址。
怎么用命令查出某个包的真实仓库地址
Composer 安装的包,其源码来源(比如 GitHub、GitLab 或私有 Git 地址)藏在 composer.lock 里,但手动翻太慢。最稳的方式是让 Composer 自己吐出来:
- 查单个包:
composer show -v vendor/package-name—— 注意必须加-v(verbose),否则source字段不显示 - 查所有已安装包的源地址:
composer show -v | grep -A 2 "source:"(Linux/macOS),或用findstr(Windows)配合分页查看 - 如果包是从 dist(zip/tar)安装的,
source字段会是null或缺失,这时得看dist.url,它指向下载归档的原始地址
为什么 composer info 查不到 source
composer info 是 composer show 的别名,但默认只输出简略信息,不包含 source 和 dist 这类元数据。这是设计使然,不是 bug,也不是权限问题。
- 它等价于
composer show,而非composer show -v - 想确认这点?运行
composer show --help,能看到-v明确标注为 “Show package details including source and dist” - 别试
composer info --source——这个参数根本不存在,会报错Unrecognized option "--source"
私有包或 VCS 包的 source 地址可能被重写
如果你用 repositories 配置了私有 Packagist 或镜像源,Composer 可能会把原始 source 地址替换成镜像地址,尤其是用了 packagist.org 的代理服务时。
- 真实源头可能被隐藏:比如原包在
https://gitlab.example.com/group/pkg,但composer show -v显示的是https://repo.mirror.com/group/pkg.git - 验证是否被重写:对比
composer.lock中该包的source.url和你配置的repositories列表 - 绕过镜像查原始地址:临时注释掉
repositories段,运行composer update --lock(不重装),再show -v,就能看到未被代理的 source
真正要溯源时,source.url 不一定等于“作者写的原始仓库”,它只是 Composer 当前解析出的克隆地址;如果包经过 fork、mirror、proxy,就得一层层倒查 composer.json 的 homepage、support.source 或作者文档——这些字段不会自动进 composer.lock,得手动翻。










