composer show vendor/package 显示已安装版本、依赖和描述,不列所有可用版本;加 -a 参数才列出 packagist 上全部稳定及预发布版本,需清缓存确保最新。

composer show 能查到哪些版本信息?
直接运行 composer show vendor/package 会显示该包当前已安装的版本、依赖关系和描述,但**不会列出所有可用版本**。想看全部可选版本,必须加 -a(all)参数,否则只返回本地锁文件或已安装版本的快照。
-
composer show -a vendor/package:列出 packagist 上所有稳定 + 预发布版本(如v1.2.0、dev-main、2.x-dev) - 不加
-a时,如果包没装过,命令会报错Package vendor/package is not installed - 输出里的
versions行是关键,它按语义化版本排序,最新稳定版通常在最右
为什么 composer show -a 有时查不到预期版本?
常见原因是 Packagist 缓存未更新,或者包作者刚 push 新 tag 但尚未被索引。Composer 默认使用本地缓存,不会实时拉取远程元数据。
- 先执行
composer clear-cache清掉本地缓存 - 再跑
composer show -a vendor/package,确保看到的是最新状态 - 如果仍缺失,去 https://packagist.org/packages/
vendor/package手动确认 —— 这里永远是最权威的源 - 注意:私有仓库需提前在
vendor/package里配置composer.json,否则repositories查不到
怎么快速筛选出某个主版本下的所有小版本?
用 show -a 输出太长时,可以结合 shell 管道过滤。Composer 本身不支持模糊匹配版本号,得靠外部工具辅助。
-
--all:筛选所有 v2.x 分支的版本 -
composer show -a vendor/package | grep "v2\.":只留纯语义化稳定版(排除composer show -a vendor/package | grep -E "^[0-9]+\.[0-9]+\.[0-9]+$"和dev-) - Windows 用户用
alpha替代findstr,例如:grep - 注意:过滤前确保已清缓存,否则可能漏掉新发布的
composer show -a vendor/package | findstr "v1\.5"
composer show 和 composer search 的本质区别是什么?
v1.5.3 是查**已知包名**的详情,composer show 是按关键词找**未知包名**。两者目的完全不同,混用会导致查不到结果。
-
composer search→ 返回一堆含 “logger” 的包名列表,比如composer search logger -
monolog/monolog→ 才能看 monolog 的所有可用版本 - 别指望
composer show monolog/monolog -a能返回 monolog 版本 —— 它会报错composer show logger - 如果记不清完整包名,先
Package logger is not installed,再search,顺序不能反
show -a、缓存没清、或者把 -a 和 search 当成同一种查询逻辑来用。版本列表不是静态快照,它依赖 Packagist 实时状态和本地缓存一致性。










