如何通过Composer.json中的support字段添加文档和Issue链接?

发布时间 - 2026-01-08 00:00:00    点击率:
support 字段仅支持预定义键名,实际生效且被 Packagist 渲染的只有 docs 和 issues,二者必须为完整 HTTPS URL;其他键如 source、forum 等不被解析或展示,自定义键名将导致 composer validate 报错。

support 字段本身不支持直接添加文档链接或 Issue 链接——它只接受特定键名,且这些键名是预定义的、硬编码在 Composer 的 schema 中的。

support 字段只认这几个键:docsissuessourceforumwikiirctwitter

Composer 官方 Schema 明确限定 support 下只允许以下字段(大小写敏感,不能拼错):

  • docs:对应项目文档地址,例如 "docs": "https://example.com/docs"
  • issues:对应 Issue 跟踪地址(GitHub/GitLab 的 Issues 页面),例如 "issues": "https://github.com/user/repo/issues"
  • source:代码仓库地址(不是主页),例如 "source": "https://github.com/user/repo.git"
  • 其他如 forumwiki 等字段虽存在,但不会被 Packagist 或大多数工具解析展示,仅作保留字段

写成 documentationbugtrackerhelp 等自定义键名会被 Composer 忽略,且 composer validate 会报 schema 错误。

实际生效的只有 docsissues,且仅在 Packagist 页面显示

Packagist 是目前唯一消费 support 字段并公开渲染的平台。它的前端只读取并展示:

  • docs → 显示为 “Documentation” 标签页链接
  • issues → 显示为 “Issues” 标签页链接
  • source → 用于生成 “Source” 链接,但仅当未设 homepage 时才可能 fallback 使用

示例正确写法:

{
    "support": {
        "docs": "https://mylib.example.org/guide",
        "issues": "https://github.com/myorg/mylib/issues"
    }
}

注意:docs 值必须是完整 URL(含 https://),否则 Packagist 不识别;issues 同理,不能写成 "https://github.com/myorg/mylib"(这是主页,不是 issues 页)。

常见错误:混用 homepagesupport.docs,或漏掉协议

这两个字段用途不同,不可互相替代:

  • homepage 是包的主站(通常带介绍、下载、演示等),Packagist 将其显示在包名下方大标题旁
  • support.docs 是纯文档入口,Packagist 单独列为一个导航标签页
  • 若只填了 homepage,Packagist 不会自动从它推导出文档链接
  • docs 值是 "./docs""docs/index.html",验证失败且 Packagist 忽略

验证方式很简单:

composer validate

如果字段名拼错或 URL 缺少协议,会提示类似:

[Schema] support: The property docs is not defined and the definition does not allow additional properties.(字段名错误)

[Schema] support.docs: URL must start with http:// or https://(协议缺失)

真正起作用的只有 docsissues 这两个键,而且它们只在 Packagist 上可见。本地 composer install 或 IDE 插件完全不读取这个字段——别指望它影响开发流程或自动跳转。


# html  # js  # 前端  # git  # json  # composer  # github  # 编码  # 工具  # gitlab  # twitter  # Property  # ide  # http  # https  # issue  # 键名  # 文档  # 这两个  # 自定义  # 会报  # 这是  # 字段名  # 拼错  # 将其  # 很简单 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  linux写shell需要注意的问题(必看)  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  Laravel如何配置任务调度?(Cron Job示例)  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  如何在Windows虚拟主机上快速搭建网站?  javascript读取文本节点方法小结  EditPlus中的正则表达式 实战(4)  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  制作企业网站建设方案,怎样建设一个公司网站?  详解Android图表 MPAndroidChart折线图  如何快速建站并高效导出源代码?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  如何为不同团队 ID 动态生成多个非值班状态按钮  php485函数参数是什么意思_php485各参数详细说明【介绍】  Android 常见的图片加载框架详细介绍  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  如何在Ubuntu系统下快速搭建WordPress个人网站?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  Laravel如何记录自定义日志?(Log频道配置)  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  如何快速启动建站代理加盟业务?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  如何在阿里云虚拟主机上快速搭建个人网站?  Laravel如何发送系统通知?(Notification渠道示例)  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  ,怎么在广州志愿者网站注册?  SQL查询语句优化的实用方法总结  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  微信小程序制作网站有哪些,微信小程序需要做网站吗?  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  Laravel如何自定义错误页面(404, 500)?(代码示例)  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  BootStrap整体框架之基础布局组件  iOS中将个别页面强制横屏其他页面竖屏  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Thinkphp 中 distinct 的用法解析  java中使用zxing批量生成二维码立牌  如何在服务器上三步完成建站并提升流量?  手机网站制作与建设方案,手机网站如何建设?  Laravel如何升级到最新版本?(升级指南和步骤)  原生JS实现图片轮播切换效果