composer 的 keywords 字段仅用于包详情页人工标签展示,不参与 packagist 搜索或排名;应填 3–5 个具体技术栈、能力组合或场景词,全小写短横线连接,改后需发新 tag 或手动更新才生效。

Composer 的 keywords 字段不是搜索权重工具,它不参与 Packagist 检索、不提升包排名,只在包详情页展示,供人眼快速识别用途。
keywords 写什么才不算白填
这个字段本质是人工打标签,目标是让开发者扫一眼就判断“这包是不是我需要的”。别堆砌泛词(比如 "php"、"library"),也别写和功能无关的营销词(比如 "awesome"、"best")。
- 优先填具体技术栈或协议:例如
"psr-14"、"http-client"、"laravel-9" - 填核心能力动词+名词组合:例如
"rate-limiting"、"json-api"、"csv-export" - 如果面向特定场景,加领域词:例如
"woocommerce"、"shopify-api"、"symfony-bundle" - 避免重复包名或 vendor 名:比如包叫
acme/http-client,就别再写"http-client"—— 这是默认上下文,不是关键词
格式和长度有硬限制
Packagist 对 keywords 是纯字符串数组,但实际使用中会受显示空间和可读性约束:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 建议控制在 3–5 个词,再多就失去快速识别意义
- 全部小写,用短横线连接多词(
"command-line",不是"commandline"或"CommandLine") - 不要带空格或特殊符号:错误写法:
"laravel 10"、"API v2";正确写法:"laravel-10"、"api-v2" - 不支持通配符或正则,也不解析语义,只是原样渲染
为什么改了 keywords 却没在 Packagist 页面更新
关键词变更不会实时同步。Packagist 只在你 push 新 tag 或手动触发 reindex 时抓取 composer.json 元数据:
- 如果你只改了
main分支的composer.json但没发新 tag,Packagist 不会重新读取 - 手动刷新方式:进入 Packagist 上该包页面 → 点右上角
Update按钮(需你是维护者) - 检查是否生效:直接看页面 URL 后缀为
/packages/vendor/name/的详情页底部Keywords区域 - 注意缓存:浏览器或 CDN 可能缓存旧页面,硬刷(Ctrl+Shift+R)或换隐身窗口确认
真正影响别人能不能找到你的包的,是 name、description 和实际代码里的类名/函数名是否易搜;keywords 就是个便利贴,贴歪了不耽误用,但贴准了能少一句解释。










