composer show -a vendor/package-name是唯一能查全量版本的命令,它直连Packagist API(或私有源),返回所有未被标记为abandoned的版本,包括stable、beta、RC、dev等,不依赖本地安装状态且绕过minimum-stability限制。

composer show -a vendor/package-name 是唯一能查全量版本的命令
它直连 Packagist API(或你配置的私有源),返回该包所有未被标记为 abandoned 的版本:包括 v3.5.0、2.10.0-beta1、dev-main、1.27.0-RC1 等。不依赖本地是否安装过,也不受 minimum-stability 限制——-a 就是绕过这些过滤的开关。
常见错误:
- 漏掉
-a:只跑composer show monolog/monolog,结果只有已安装版或最新稳定版 - 拼错包名:
monolog/monolg→ 直接报Package not found,不是网络问题,是 Packagist 上真没这名字 - 写成
--all却没带包名:composer show --all只查本地缓存过的版本,不是远程全量列表 - 用单横杠
-all:composer show -all被解析为无效参数,退化成composer show
国内用户查不到新版本?先看镜像源同步状态
阿里云、腾讯云等镜像源通常有数小时延迟,刚发布的 v4.0.0 可能在官方源已可见,但镜像还没同步。这不是命令失效,是源本身滞后。
临时切回官方源验证:
composer config -g repo.packagist composer https://packagist.org
确认后可改回镜像源:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
其他影响因素:
-
allow_url_fopen被禁用或 cURL 扩展未加载 → 命令卡住或报错,检查php --ini和php -m | grep curl - 私有包没在
composer.json的repositories里声明 → 返回空或报错,不是命令问题 - 首次执行较慢 → 因要拉取远程元数据,加
-v可看请求过程
输出太长?用管道快速提取纯版本号
默认输出含描述、时间、类型等冗余字段。脚本中常用方式:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
有 jq:
composer show -a monolog/monolog --format=json | jq -r '.versions | join("\n")'
没 jq(更稳):
composer show -a monolog/monolog | grep -E '^[[:space:]]*versions:' -A 1 | tail -n 1 | tr ',' '\n' | sed 's/^[[:space:]]*//'
注意:
- 字段顺序可能随 Composer 版本微调,别只靠
head -n1 -
grep -E '^[0-9]+\.[0-9]+\.[0-9]+$'只留语义化稳定版,但会漏掉10.x类格式 -
grep "v2\."可筛出 v2.x 分支的所有版本
查不到预期版本?别只信命令行
命令行结果受限于缓存、镜像延迟、Packagist 索引节奏。最权威的参考永远是网页:
打开 https://www.php.cn/link/84ff7015cca989303244d13f1a8146fd,向下滚动到 “Versions” 区域。这里能看到:
- 按时间倒序排列的全部标签
- 每个版本的发布时间、是否 stable / RC / dev、是否被弃用
- 点开单个版本,还能看到它要求的 PHP 版本和依赖范围 —— 这些
composer show -a不提供
极老版本(如 1.0.0-alpha)可能被 Packagist 归档隐藏,--all 也不返回,只能手动翻页查。

















