composer show 可查包的描述、关键词、类型、依赖、自动加载、许可证及所有版本;未安装时加 -a 从 Packagist 查询;用 --all --format=json 配合 jq 或 grep+awk 提取版本;缓存延迟需 clear-cache;-t 参数显示依赖树,仅对已安装包生效。

composer show 能查到哪些包信息
直接运行 composer show vendor/package-name 就能拿到包的完整元数据,包括描述、关键词、类型、依赖项、自动加载配置、许可证,以及所有已发布的版本列表(含稳定版和开发版)。它不走 Packagist API,而是读取本地 composer.lock 或远程仓库缓存,响应快、信息全。
如果包没安装过,加 -a 参数强制从 Packagist 查询:composer show -a monolog/monolog。注意:这会触发网络请求,且部分私有包或已下架包可能查不到。
怎么筛选只看版本号,避免信息刷屏
默认输出太长,实际只想快速确认有哪些可用版本时,用 --all + --format=json 配合命令行工具更高效:
composer show --all --format=json monolog/monolog | jq -r '.versions[]'
或者不用 jq,纯 shell 提取版本字段:
composer show --all monolog/monolog | grep '^\s*[0-9]' | awk '{print $1}' | sort -V
注意:--all 会列出所有分支(如 dev-main)和带后缀的预发布版(如 2.10.0-beta1),正式项目中要留意是否允许使用 beta、rc 类版本。
为什么 composer show 查不到刚发布的新版本
Composer 默认缓存 Packagist 元数据,新版本上线后可能延迟 15–30 分钟才同步到本地索引。遇到查不到最新版,先执行:
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
-
composer clear-cache清掉本地缓存 - 再运行
composer show -a vendor/package
如果仍不显示,检查该版本是否被标记为 abandoned,或是否设置了 "minimum-stability": "stable" 抑制了 RC/beta 版本可见性。临时提高稳定性阈值可测试:composer show -a --stability=RC vendor/package。
查看包的依赖图谱和冲突提示
composer show 自带 -t(tree)参数,能展开当前项目中该包的完整依赖路径:
composer show -t guzzlehttp/guzzle
输出里每行都带缩进,能看出它是被谁引入、是否重复安装、有没有版本冲突。特别当报错 Your requirements could not be resolved 时,这个树状结构比 composer why-not 更直观定位卡点。
注意:-t 只对已安装的包生效;若包未安装,先 composer require vendor/package:dev-main --dry-run 模拟安装,再查依赖树。
版本兼容性判断不能只看 latest 标签——有些包的 3.x 和 4.x 之间存在重大变更,show 输出里的 require 字段才是真实约束依据,得逐条核对 PHP 版本、扩展依赖和上游包约束。

















