homepage 字段是 composer.json 根级可选字段,仅用于 packagist 页面展示;必须写在顶层,值为非空字符串,指向项目主站而非仓库或 packagist 链接;修改后需手动触发或 webhook 同步才生效。

Composer 的 homepage 字段不是必须的,也不影响安装或依赖解析;它只在 Packagist 页面上显示,且仅当你的包已提交到 Packagist 时才可见。
homepage 字段写在哪?
它属于 composer.json 根对象的顶层字段,和 name、description 同级,不是 extra 或 scripts 的子项。
常见错误现象:有人把它塞进 extra 里(比如 "extra": { "homepage": "..." }),结果 Packagist 完全忽略——因为不认这个路径。
- ✅ 正确位置:
composer.json最外层直接写"homepage": "https://example.com" - ❌ 错误位置:
"extra": { "homepage": "..." }、"config": { "homepage": "..." } - ⚠️ 注意:值必须是字符串,不能是数组或
null;空字符串""会被 Packagist 当作未填写处理
homepage 值该填什么?
它应该指向项目主站,不是 GitHub/GitLab 仓库页,也不是 Packagist 链接本身。Packagist 明确建议“project homepage”,即面向用户的、有介绍/文档/下载入口的站点。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
使用场景:用户在 Packagist 搜索到你的包后,点“Homepage”按钮,期望看到的是能理解项目用途的地方,而不是又跳回代码仓库。
- ✅ 推荐:
"https://my-awesome-lib.dev"(带 HTTPS 的独立域名) - ✅ 可接受:
"https://github.com/user/repo#readme"(仅当没建站,且 README 本身足够说明用途) - ❌ 避免:
"https://packagist.org/packages/vendor/package"(循环跳转,无意义) - ❌ 避免:
"./"或"index.html"(相对路径,Packagist 不解析)
改了 homepage 为什么 Packagist 没更新?
Packagist 不实时拉取 composer.json;它只在你手动触发同步(如推送新 tag、点击 “Update” 按钮),或配置了 webhook 自动同步时才刷新元数据。
性能 / 兼容性影响:这个字段纯展示,不影响 composer install 速度、锁文件生成或任何运行时行为。
- 确认是否已推送含新
homepage的 commit 到默认分支(通常是main或master) - 检查 Packagist 页面右上角是否有 “Update” 按钮,点一下(需登录并有权限)
- 如果用了 GitHub webhook,确认 webhook 状态是 active,且 payload 被 Packagist 成功接收(查看 GitHub Settings → Webhooks 日志)
- 等待最多几分钟——不是秒级生效,别刚改完就刷页面
真正容易被忽略的是:即使你把 homepage 写对了、也推上去了,如果 Packagist 上该项目状态是 “abandoned” 或尚未启用自动更新,它压根不会重新抓取 composer.json。这时候得人工干预,而不是反复改字段。










