composer show 是唯一可靠、直接、无需额外工具就能查到包作者与贡献者信息的命令,它读取已安装包或远程最新版 composer.json 中根级 authors 数组内容,该字段需手动配置且仅反映发布版本声明,不自动关联 Git 提交记录。

composer show 是唯一可靠、直接、无需额外工具就能查到包作者与贡献者信息的命令。
用 composer show 查已安装包的作者信息
只要包已通过 composer require 安装进当前项目,运行以下命令即可看到 authors 字段内容:
composer show monolog/monolog
输出中会明确列出 authors 一栏,例如:
authors ! John Doe! Jane Smith
- 该信息完全来自包的
composer.json中的authors数组,不是 Git 提交记录自动提取的 - 如果作者字段为空或格式错误(比如写成
"author": "xxx"),这里就会显示authors : []或直接不显示 - 注意:它只显示当前已安装版本的
authors—— 如果你本地装的是v2.8.0,就不会反映v2.9.0新增的贡献者
用 composer show --remote 查远程最新版作者
即使没安装某个包,也能看它在 Packagist 上最新版的作者信息:
composer show --remote laravel/framework
这个命令会向 Packagist API 请求最新稳定版(如 v11.0.0)的元数据,并展示其 composer.json 中定义的 authors。
- 适用于选型阶段快速判断维护活跃度或团队背景
- 若返回中没有
authors,说明该包未在composer.json中声明,Packagist 页面也会显示 “No authors listed” - 不支持指定任意历史版本(如
--remote --version=v9.5.0),只能查最新版
为什么 authors 字段常为空?常见配置错误
作者信息不会自动生成,必须手动写进 composer.json 根层级的 authors 数组里 —— 这是 Composer 的硬性约定,不是可选项。
- ❌ 错误写法:
"author": "Tom"或"contributors": [...]—— Composer 完全忽略,composer show不会显示 - ❌ 错误嵌套:
"extra": { "authors": [...] }—— 同样无效,authors必须在根级 - ✅ 正确结构:必须是数组,每个元素至少含
name字段,email和homepage可选但强烈建议补全 - ⚠️ 注意:修改
composer.json后不发新版本,composer show --remote看不到更新 —— Packagist 只读取已发布的版本快照
想确认某人是否真参与过开发?别只信 authors
authors 是主观声明,不是贡献审计。它反映的是“谁愿意被列为作者”,而非“谁提交过代码”。
- Git 历史才是真实依据:用
git shortlog -sne --no-merges查仓库实际提交者 -
composer show不会显示 role、头像、GitHub 用户名等扩展信息 —— 即使你在composer.json里写了"role": "maintainer",它也不会出现在输出里 - 若需权威贡献追溯,应结合
composer show --remote+ 包主页链接(homepage)+ GitHub/GitLab 仓库的CONTRIBUTORS或CODEOWNERS文件
composer show 输出的作者,都只取决于那个特定版本发布时的 composer.json —— 它不会动态聚合所有历史提交者,也不会自动同步你的 Git 配置。想让人看到新贡献者?必须改 composer.json,然后发个新版。










