不能,composer show 默认只显示已安装或最新稳定版;用 composer show -a 可查全部可用版本(含 dev-/alpha/beta/rc 等),绕过 minimum-stability 限制。

composer show 能查到所有版本吗
不能。composer show 默认只显示已安装版本或最新稳定版,不列出全部历史版本。想看到完整版本列表(包括 dev-、alpha、beta、rc 等),得换命令。
用 composer show -a 查全部可用版本
composer show -a 是最直接的方式,它会拉取 Packagist 元数据并展示该包所有已发布版本(含非稳定版)。注意不是所有版本都默认可见——Composer 会按 minimum-stability 和 prefer-stable 配置过滤,但 -a 会绕过这些限制,强制返回全部。
实操建议:
- 运行
composer show -a vendor/package-name,比如composer show -a monolog/monolog - 如果提示 “Package not found”,说明包名拼错,或该包未在 Packagist 公开注册(私有包需配置仓库)
- 输出中带
dev-前缀的版本,通常对应 Git 分支(如dev-main),不是标签,安装时需加@dev后缀才能用 - 响应可能较慢,尤其首次执行,因为要请求远程 API;可加
-v查看详细网络请求过程
为什么 composer search 不行
composer search 只查包名和描述关键词,不返回版本信息。它本质是调用 Packagist 的搜索接口,返回的是包列表,不是某个包的版本树。误用它查版本,只会得到一堆无关包名。
常见错误现象:
- 执行
composer search monolog→ 返回几十个含 “monolog” 的包,但没一个带版本号 - 试图加
--all或-a参数 → 报错 “unrecognized option”
想脚本化获取版本列表?用 composer show -a --format=json
需要自动化解析时,--format=json 比纯文本更可靠。输出是 JSON,包含 versions 数组,每个元素是字符串(如 "2.9.0"、"dev-main")。
注意点:
- JSON 输出不含版本发布时间、是否稳定等元数据,只有版本字符串本身
- 某些旧版 Composer(--format=json,会报错;建议先运行
composer --version确认 >= 2.0 - 私有包若使用自建 Satis/SatisPress 仓库,需确保该仓库启用了
providers-url并支持/packages/{vendor}/{package}.json接口
composer show -a 就够了。但别忘了:Packagist 上删掉的版本(比如因安全问题被 yank)不会出现在结果里,也查不到。这点容易被忽略。


















