composer show 是唯一能直接查包作者信息的命令,但它只读取 composer.json 中手工填写的 authors 字段,非 Git 提交记录的真实贡献者;查已安装包用 composer show vendor/package,未安装包用 composer show --remote 或直查 Packagist API。

composer show 是唯一能直接查到包作者信息的命令,但它只读 composer.json 里手工填的 authors 字段,不是 Git 提交记录里的真实贡献者。别指望它返回 GitHub 上活跃的 PR 提交人。
用 composer show 查已安装包的作者
只要包已通过 composer require 安装进项目,就能立刻看到作者字段:
- 运行
composer show monolog/monolog,输出中会有一行authors,格式通常是John Doe或数组形式 - 如果没写全,可能只显示
authors : []或干脆不出现这一行——说明上游composer.json根本没填authors数组 -
composer show不接受缩写包名,必须写全vendor/package-name,否则报错Package not found - 加
--local可离线读取本地已安装版本,不联网;加-s会同时显示source.url,但前提是该包已安装且composer.json里有source字段
查未安装包的作者:绕过本地,直连 Packagist
composer show --remote 是唯一可行的本地命令,但它只返回 Packagist 上标记为 latest 的那个版本的 authors:
- 执行
composer show --remote laravel/framework,它会请求https://packagist.org/packages/laravel/framework.json并解析其中的authors字段 - 如果返回空或缺失,说明这个版本的
composer.json没维护该字段;Packagist 页面上也会显示No authors listed - 别用
composer search找作者——它完全不索引authors字段,搜john doe无效 - 自动化脚本里需要稳定获取,建议直接
curl https://packagist.org/packages/vendor/package-name.json,然后取maintainers或authors字段;注意国内镜像可能不同步maintainers
作者 ≠ 贡献者:怎么找真正在改代码的人
authors 是发布时声明的责任主体,不是协作图谱。想确认谁最近还在提交、修 issue、合并 PR,必须跳转源码仓库:
- Packagist 页面右上角的
Source链接是唯一可靠入口,点进去才是 GitHub/GitLab 仓库主页 - 在 GitHub 上,顶部点
Contributors标签页,按提交量排序,头像+PR数+最近提交时间一目了然 - 用 GitHub CLI 批量查:
gh api repos/{owner}/{repo}/contributors --jq '.[].login',比网页快,也避开了前端渲染限制 - 如果
source.url是私有地址或自建 Satis,得手动检查composer.json里的homepage或support.source字段
最常被忽略的一点:authors 字段必须是根级数组,写成 "author": "xxx" 或塞进 extra 里,composer show 就永远看不到。而且改了 composer.json 不发新版本,Packagist 就不会更新——你查的永远是旧快照。











