composer show vendor/package-name 可直接查看包的 description 等元信息,无需本地安装,但必须使用完整 vendor/package 格式;description 为纯文本,不渲染 markdown,为空表示作者未填写。

composer show 查看包的 description 字段
直接运行 composer show vendor/package-name 就能拿到包括 description 在内的元信息。这个命令不依赖本地安装,只要 composer.json 里声明了该包(或已安装),就能查到官方注册时填的描述。
常见错误是只输包名不带 vendor,比如 composer show laravel-scout 会报错——必须写全称 composer show laravel/scout。Packagist 上显示的「vendor/package」格式就是这里要填的。
- 未安装的包也能查:只要 Packagist 有记录,
composer show就能拉取 metadata - description 是纯文本字段,不渲染 Markdown,换行和缩进会被压缩成空格
- 如果返回空 description,说明作者没填,不是命令问题
用 composer search 快速筛选带关键词的包
composer search 是按 description 和 name 模糊匹配的轻量级搜索,适合快速定位“做什么用的包”。比如想找个处理 Excel 的,composer search excel 返回的列表里,每行末尾就跟着 description 的前几十个字符。
注意它不支持正则、不区分大小写,但支持多词空格分隔(默认是 AND 关系)。搜 composer search cache redis 找的是 description 同时含这两个词的包,不是任意一个。
- 结果不保证实时:依赖 Packagist 的索引更新,新包可能几小时后才可搜到
- 没有分页,结果太多时只会截断,建议加更具体的词缩小范围
- 别指望靠它判断包是否维护活跃——description 写得再好,也得看
composer show里的time和type
description 字段在 require 时完全不参与解析
你不能靠 description 来控制安装行为,它只是给人看的。Composer 解析依赖只看 name、version、require、autoload 这些字段。哪怕 description 写着“专为 Laravel 10 设计”,只要 composer.json 里 require 不匹配,照样装不上或触发冲突。
- 别在
description里塞版本兼容提示,那属于require或conflict的职责 - 有些包把 license、作者联系方式塞进 description,反而让真正想了解用途的人得手动过滤
- 如果你是包作者,description 最好控制在 120 字以内,首句直说“做什么”,别写“一个用于……的 PHP 包”这种废话
想批量看多个包的 description?用 --format=json 配合 jq
当你要对比十几个包的用途,手动 composer show 太慢。composer show --format=json 输出结构化数据,配合 jq 提取 description 最省事。
例如:查当前项目所有已安装包的 description,一行命令搞定:
composer show --format=json | jq -r '.packages[] | "\(.name) → \(.description)"'
- 没装
jq的话,composer show --format=xml也可读,但解析成本高得多 -
--format=json只对已安装包生效;想查未安装的,得用 Packagist API 或写脚本调composer show vendor/name循环 - 输出里
description可能为null,jq加个// ""避免报错更稳妥
description 最大价值是帮你跳过读文档的第一步——但它没法替代看 README.md 或跑个 demo。尤其当包长期没更新,description 早就不准了。










