composer show -a vendor/package-name是查远程所有可用版本的唯一可靠命令,直接拉取packagist全量版本列表,包括稳定版、预发布版和开发分支,不依赖本地安装状态。

composer show -a vendor/package-name 是查远程所有可用版本的唯一可靠命令
它不依赖本地是否安装过这个包,也不看你 composer.json 里有没有写,直接连 Packagist(或你配置的私有源)拉取全量版本列表,包括 v3.5.0、2.10.0-RC1、dev-main、dev-4.x 这类 tagged release 和分支快照。
常见错误现象:
- 输错包名(比如
monolog/monolog写成Monolog/Monolog或monolog)→ 直接报Package not found - 查私有 Git 包却没在
composer.json的repositories里声明 → 返回空或报错 - 国内网络不稳定时超时 → 不是命令失效,可临时切回官方源:
composer config -g repo.packagist composer https://packagist.org
输出太长想只看语义化版本号?推荐组合用法:
- 有
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 show vendor/package-name 只查当前项目已安装的版本
这个命令读的是 vendor/composer/installed.json,断网可用,但前提是 vendor/ 目录存在且没被删过。它不联网、不刷新元数据,只反映「此刻真实运行态」。
容易踩的坑:
- 包只在
require-dev里,但上次是用composer install --no-dev装的 → 查不到 - 大小写敏感:
symfony/console和Symfony/Console是两个不同包 - 没
vendor/目录时,命令直接失败或返回空 —— 它不会退到composer.lock去解析
想确认某包是不是真装上了,就用这个命令;但别指望它告诉你「还有哪些新版本可选」。
composer show -a composer/composer 查 Composer 自身所有发布版本
Composer 本身也是个包,vendor 是 composer,包名是 composer。所以查它自己的历史版本,就得用:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
composer show -a composer/composer
这会强制刷新缓存、直连 Packagist API,列出所有 tag,比如 2.8.0、2.7.7、dev-main。注意:versions 字段才是真实可用列表,别只扫一眼顶部的 latest。
对比 composer --version 输出的当前版本,就能看出差几个小版本。但要注意:这个命令不判断兼容性,也不会告诉你「你能不能升级」——得结合 PHP 版本和 platform 配置来看。
查不到预期版本?先确认 PHP 环境和 stability 设置是否过滤掉了它
composer show -a 其实做了本地预筛:如果 composer.json 里写了 "platform": {"php": "8.1"},而某个版本 require "php": "^8.2",那它压根不会出现在结果里。
同样,minimum-stability 设置会影响可见范围:
- 设为
stable→dev-main、beta、RC版本不会显示 - 设为
dev→ 所有分支快照都可能出现,但可能引入不兼容变更
最绕不开的一点:有些包用了非标准版本格式(比如 v1.2.3 而不是 1.2.3),或者作者推了附注 tag(1.2.3^{})但没同步到 Packagist —— 这时候 CLI 就看不到,得去 https://packagist.org/packages/{vendor}/{package} 页面点 “Versions” 标签页,或者直接 git ls-remote --tags 看原始仓库。










