如何通过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 字段只认这几个键:docs、issues、source、forum、wiki、irc、twitter
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" - 其他如
forum、wiki等字段虽存在,但不会被 Packagist 或大多数工具解析展示,仅作保留字段
写成 documentation、bugtracker、help 等自定义键名会被 Composer 忽略,且 composer validate 会报 schema 错误。
实际生效的只有 docs 和 issues,且仅在 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"
}
}
注意:do 值必须是完整 URL(含
cshttps://),否则 Packagist 不识别;issues 同理,不能写成 "https://github.com/myorg/mylib"(这是主页,不是 issues 页)。
常见错误:混用 homepage 和 support.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://(协议缺失)
真正起作用的只有 docs 和 issues 这两个键,而且它们只在 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实现图片轮播切换效果

