support字段必须是含预定义键的对象,否则Packagist不显示;有效键名仅限email、issues、source等8个,其中issues和source最优先,且URL须完整、source需与repository一致,修改后须发新tag才能生效。

Composer 包的 support 字段不是可有可无的装饰项,它直接出现在 Packagist 页面的「Support」栏,影响用户第一眼能否快速联系到你——但填错格式或用错键名,这个区块就根本不会显示。
support 字段必须是对象,且只认预定义的几个键名
Composer 官方只识别以下固定键名:email、issues、source、forum、wiki、irc、chat、twitter。任何自定义键(比如 discord 或 slack)会被完全忽略,Packagist 不渲染也不报错。
常见错误是写成字符串或数组:
"support": "https://github.com/you/package/issues" // ❌ 错误:必须是对象
正确写法示例:
"support": {
"issues": "https://github.com/you/package/issues",
"source": "https://github.com/you/package",
"email": "support@you.example.com"
}
issues 和 source 是最值得优先填的两个字段
Packagist 会为 issues 自动生成「Report issues」按钮,为 source 生成「Source」链接——这两个是用户点击率最高的入口。如果只填一个,优先填 source,因为 Packagist 依赖它来抓取最新 tag 和更新 README。
-
issues值必须是完整 URL(含https://),不能是相对路径或 GitHub short link(如github.com/you/repo) -
source必须指向可 clone 的仓库地址,且需与repository字段一致,否则 Packagist 同步可能失败 -
email建议使用专用支持邮箱,避免暴露个人邮箱;若不希望公开,可留空或省略该键
chat / irc 字段对实时支持有意义,但要注意协议前缀
如果你提供 Discord、Matrix 或 Slack 支持,得用 chat 键,并确保 URL 可直接打开(例如 Discord invite 链接):
"support": {
"chat": "https://discord.gg/abc123",
"issues": "https://github.com/you/package/issues"
}
而 irc 键仅用于传统 IRC,格式为 irc://irc.libera.chat:6667/#channel ——少写 irc:// 或端口错误,链接在 Packagist 上就变成纯文本,无法点击。
注意:discord、slack 这类自定义键名无效,别试图绕过规范。
最容易被忽略的是:修改 composer.json 后,必须推送新 tag(或至少触发 Packagist webhook),否则 Packagist 页面不会更新 support 区块——改完文件不发版,等于没改。










