直接修改 composer.json 根级 description 字段即可生效,需为非空字符串、utf-8 编码、无 bom 和控制符,建议≤120 字;它影响 packagist 展示、composer search 匹配及 ide 提示,但不参与依赖解析。

直接改 composer.json 里的 description 字段就行,不需要运行任何命令,改完即生效。
description 字段在哪、怎么写才合法
它必须是根级字段,和 name、type 同级,值只能是字符串(不能是空、null 或数组):
{
"name": "myvendor/myproject",
"description": "一个轻量的配置加载器,支持 YAML 和 JSON",
"type": "library",
...
}
- 如果留空或删掉该字段,
composer show会显示no description - 描述里别用换行符或制表符,JSON 不允许;中文没问题,但注意文件编码是 UTF-8
- 长度没硬性限制,但 Packagist 网站展示时会截断,建议控制在 120 字以内
改完不生效?检查这几个地方
修改后发现 composer show myvendor/myproject 还是旧描述,常见原因:
- 改的是本地项目根目录下的
composer.json,但你执行show查的是已安装的包(比如从 Packagist 下载的)——这时要先composer update或重装本地包:composer require --dev ./ - 项目没提交到 Packagist/GitHub,别人
composer require时拉的仍是旧版本;新描述只对后续git tag的版本生效 - 编辑器保存了 BOM 头,导致 JSON 解析失败;用
composer validate能立刻暴露这个问题
description 影响哪些地方
它不是装饰字段,实际参与多个关键环节:
- Packagist 页面标题下方的摘要文案,直接影响搜索点击率
-
composer search命令会匹配该字段(全文模糊匹配,不区分大小写) - 某些 IDE(如 PHPStorm)在
require补全时会把 description 当作提示文本 - CI/CD 中若用
composer show --format=json提取元信息,这个字段会被包含
真正容易被忽略的是:description 不参与依赖解析、不触发重安装、也不影响 autoloading —— 它纯粹是元数据,但一旦填错格式,composer validate 就会报错,连 install 都卡住。










