唯一可靠方式是composer show --all vendor/package-name;它直连packagist api获取该包所有未废弃版本,不带包名则仅显示本地缓存版本,非远程全量列表。

查某个包在 Packagist 上发布过哪些版本,唯一可靠的方式是 composer show --all vendor/package-name;漏掉包名、写成 -all 或没配源,结果就完全不对。
为什么 composer show --all 必须带包名
不加包名的 composer show --all 实际等价于 composer show -a(旧写法),但它只列出你本地 vendor/ 目录里「曾经下载过」的版本缓存,不是远程真实发布列表。真正查 Packagist 全量版本,必须指定完整包名,例如:composer show --all monolog/monolog。
-
composer show --all单独执行,输出为空或只有几个老版本——不是命令失效,是你本地没缓存过那些包 -
composer show -all(单横杠)会被解析为无效参数,退化成composer show,只列已安装包 - 拼错包名(如
monolog/monolg)→ 直接报Package not found,不是网络问题,是 Packagist 上真没这名字
composer show --all 的实际行为和依赖项
这个命令会直连 Packagist API,拉取该包所有未被标记为 abandoned 的版本:包括 v3.5.0、2.10.0-beta1、dev-main、1.27.0-RC1 等。但它受几个现实条件限制:
- 依赖
composer.json中配置的repositories,私有包必须先加对应源,且 token 有效 - 国内用户可能因镜像源延迟(如阿里云同步滞后数小时)看到旧列表,临时切回官方源:
composer config -g repo.packagist composer https://packagist.org - 如果 PHP 禁用了
allow_url_fopen或 cURL 不可用,命令会卡住或报错,此时需检查php --ini和扩展加载状态
怎么快速提取纯版本号列表
默认输出是人类可读格式,含描述、时间、类型等冗余字段。脚本中常用方式是转 JSON 后提取:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
composer show --all monolog/monolog --format=json | jq -r '.versions | join("\n")'
没装 jq 的环境,可用更稳的管道组合:
composer show --all monolog/monolog | grep '^\s*versions:' | cut -d: -f2 | tr ',' '\n' | sed 's/^[[:space:]]*//'
- 字段顺序可能随 Composer 版本微调,
versions:行不一定总在第一块,所以别只用head -n1 - 输出里含
dev-main或dev-develop是正常现象,不代表不稳定——它只是分支快照,是否可用取决于你的minimum-stability设置 - 想只看语义化稳定版(如
3.5.0),得自己过滤:composer show --all monolog/monolog | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' | tr -d ' ',但注意有些包用10.x这类两位格式,正则会漏
查不到预期版本?先确认三件事
不是命令失效,而是常卡在这三个环节:
- 本地缓存过期 → 执行
composer clear-cache再试,或加--no-cache强制直连:composer show --all monolog/monolog --no-cache - 包名或源配置错误 → 私有 Git 包必须在
composer.json的repositories里声明,且确保composer update --no-scripts刷新过元数据 - 作者还没打正式 tag →
dev-main存在,但v3.0.0没发,那它就是真没发布
版本号本身不保证兼容性,composer show monolog/monolog 3.5.0 才能查到它要求的 PHP 版本、扩展依赖和冲突规则——这点最容易被跳过。










