作者信息必须写在composer.json的authors数组字段中,每个对象至少含合法name字符串和可选email、homepage;改后需validate验证并打新tag同步至Packagist。

项目作者信息不写在 composer.json 里,根本不会被 Packagist 或其他工具识别——它必须放在 authors 字段中,且格式严格,否则 composer validate 会报错或被忽略。
author 字段必须是数组,不能是字符串
很多人直接写 "author": "Your Name",这会导致验证失败或元数据丢失。Composer 要求 authors 是一个对象数组,每个对象至少包含 name 字段,email 和 homepage 为可选。
-
name是必填项,类型为字符串 -
email格式需合法(如user@example.com),否则某些 CI 工具会警告 - 多个作者就写多个对象,不要合并成一个字符串
{
"authors": [
{
"name": "Alice Chen",
"email": "alice@example.com",
"homepage": "https://alice.dev"
},
{
"name": "Bob Lin",
"email": "bob@example.org"
}
]
}
修改后要重新 validate 和 dump-autoload(如有必要)
改完 composer.json 不等于信息立刻生效。Packagist 在你提交包时才读取该字段;本地开发中,composer validate 可快速检查格式是否合规。如果项目是作为依赖被其他项目引用,且你启用了 autoload 的 classmap 或 psr-4 映射,一般无需重生成 autoload,但建议执行:
-
composer validate --strict确保无隐藏格式问题 -
composer dump-autoload -o(仅当 autoload 配置本身有变更时才需要)
packagist.org 同步作者信息的两个前提
Packagist 不会主动抓取你本地 composer.json 的改动。要让作者信息出现在包页面上,必须满足:
- 你的包已通过 GitHub/GitLab 等平台自动 hook 推送,或手动触发 sync
- 新版本 tag 已打,并且该 tag 对应的
composer.json中authors字段已正确填写
注意:编辑旧 tag 的 composer.json 并重新推送不会更新 Packagist 页面——tag 是不可变的,必须发新 tag(如从 v1.2.3 升级到 v1.2.4)。
最容易被忽略的是数组结构和 tag 不可变性。很多人改完 JSON 就以为完了,结果 Packagist 还显示旧作者,其实是没发新版本,或者把 authors 写成了 author 单数形式。










