composer show 是查已安装包作者、主页、许可证的最直接方式,需指定 vendor/package-name;未安装包应查 Packagist 网站或 API;插件包 author 字段常缺失,解析 installed.json 不可靠,推荐用 composer show --format=json(v2.2+)。

composer show 能直接查包作者和详情
想看某个包是谁写的、主页在哪、用了什么许可证,composer show 是最直接的方式。它不依赖插件或额外配置,装完 Composer 就能用。
常见错误是只输 composer show 不带参数,结果列出全部已安装包,信息太多反而找不到目标。更典型的是误用 composer info —— 这个命令在旧版 Composer(v1)里存在,但 v2+ 已废弃,执行会报错 Command "info" is not defined。
- 查指定包:运行
composer show vendor/package-name(比如composer show monolog/monolog) - 输出里
homepage字段通常就是作者主页或 GitHub 地址,source下的url是源码仓库,license是许可证类型 - 加
-s参数(composer show -s vendor/package)可显示包的依赖树,适合排查作者写的包是否间接引入了有风险的子依赖
composer show --all 查不到未安装的包?用 packagist.org 或 API
composer show 只查本地 vendor/ 里已安装的包。如果只是看到别人 composer.json 里写了 "phpunit/phpunit": "^9.5" 想先看看作者是谁,composer show 直接报错 Package "phpunit/phpunit" not found。
这时候得绕开本地环境,去 Packagist 官方源查。最稳的方式是访问 https://packagist.org/packages/vendor/package-name(比如 https://packagist.org/packages/doctrine/orm),页面顶部就写着 Maintainers,点进去能看到 GitHub 用户名和邮箱。
- 自动化脚本里需要获取未安装包的作者信息?用
curl https://packagist.org/packages/vendor/package-name.json,响应体里maintainers数组包含所有维护者 - 注意:Packagist API 返回的
maintainers字段可能为空,尤其是一些个人小包只填了authors字段,两者语义不同:authors是最初创建者,maintainers是当前有发布权限的人 - 别信第三方镜像站的 API,有些国内镜像没同步
maintainers字段,返回空数组
插件类包(如 composer-plugin)的 author 字段容易被忽略
普通库包的 composer.json 里写 "authors" 是常规操作,但 composer 插件(type=composer-plugin)常被作者漏掉这个字段,或者只写了个名字没留链接。这类包一旦出问题,很难快速定位到人。
比如你装了 hirak/prestissimo(已归档),它的 composer.json 里 authors 只有名字没有邮箱,GitHub 主页也早就不更新了——这种情况下,composer show hirak/prestissimo 显示的 author 信息基本没用。
- 判断一个包是不是插件:看
composer show vendor/package输出里的type字段,值为composer-plugin就是 - 插件的行为由
extra.installer-paths或scripts触发,author 信息对运行时完全无影响,但对维护性至关重要 - 如果你自己写插件,务必在
composer.json的authors里填上可联系的 GitHub 用户名或邮箱,否则别人遇到问题只能翻 commit 记录找最早提交者
vendor/composer/installed.json 里 author 字段不可靠
有人会直接去读 vendor/composer/installed.json 想批量提取所有包的作者,这很危险。这个文件是 Composer 运行时生成的缓存,字段结构不稳定:Composer v1 和 v2 的格式不同,某些字段(比如 authors)在 v2.2+ 后被移除,改用 package 对象嵌套。
更麻烦的是,这个 JSON 里作者信息来自包自身的 composer.json,而很多包把 authors 写成空数组 [] 或 null,甚至故意留空。直接解析它,大概率拿到一堆空值或格式错误的字符串。
- 真要批量处理,用
composer show --format=json(支持 v2.2+),它输出的是标准化结构,authors字段保证存在且格式一致 - 旧版 Composer(v1 或 v2.1-)不支持
--format=json,只能老实用composer show vendor/name配合文本解析,但要注意字段冒号后可能有空格,正则别写死 - 别解析
installed.json里的dist.reference或source.reference当作者,那是 Git 提交哈希,和人没关系










