composer show vendor/package-name 是查看已安装包完整元信息的最准最快方式,输出包括版本、作者、依赖、autoload、license、homepage等字段;必须写全名,加 -s 查 autoload,--tree 查依赖树,--all 查所有远程版本。

直接用 composer show vendor/package-name 查已安装包的完整元信息,这是最准、最快的方式;不加包名只列顶层包,不是“搜索”,也看不到 autoload 或依赖树。
查某个已装包的版本、作者、autoload 路径
运行 composer show monolog/monolog 会输出包括 versions、description、authors、homepage、license、require、autoload、dist、source 等字段。注意:
- 必须写全
vendor/package-name,monolog或Monolog/Monolog都会报Package not found - 如果包只在
require-dev里,且你执行过composer install --no-dev,那它就不在已安装列表中,composer show查不到 -
autoload字段默认不显示,得加-s(即--show-config)才展开,比如composer show -s monolog/monolog输出"Monolog\": "src/",对应到vendor/monolog/monolog/src/Logger.php - 这个
-s参数在 Composer 2.2+ 才稳定支持,旧版本会提示unrecognized option
看依赖谁、被谁依赖、为什么装了两个 psr/log
默认 composer show laravel/framework 只显示顶层信息,看不出它拉了哪个 symfony/console,更看不出后者带了哪个 psr/log。这时候必须用:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
composer show --tree laravel/framework:展示向下依赖链,缩进层级 = 依赖深度,例如└── psr/log 3.0.0 -
composer depends --tree psr/log:反向查「谁用了这个包」,适合定位冲突源头(比如两个不同版本的psr/log是谁拖进来的) - 两者都只反映当前
composer.lock解析出的实际路径;require-dev包若被--no-dev排除,就不会出现在树中 - 输出太长时别手动滚动,直接管道过滤:
composer show --tree | grep "guzzle"
查远程最新版、所有可用版本、私有包
composer show 默认只读本地 composer.lock 或缓存,不联网。要查真实远程状态,得明确加参数:
-
composer show --remote guzzlehttp/guzzle:返回 Packagist 上标记为latest的版本详情(不是全部) -
composer show --all guzzlehttp/guzzle:强制请求 Packagist API,列出所有发布过的版本(含dev-main、v7.9.0、8.0.0-rc1),注意是双横线--all,-a是无效别名,会被忽略 - 查私有包时,若未在
composer.json的repositories中配置,或没显式传--repository,命令就看不到它;URL 必须是合法的packages.json地址,填 Git URL 会报Could not parse version constraint
调试 autoload 失败或批量提取字段
当类找不到、自定义命令不执行,或者要批量验证 PSR-4 映射是否正确时,肉眼扫 terminal 输出效率低:
- 用
--format=json+jq提取关键字段:composer show --format=json monolog/monolog | jq -r '.autoload["psr-4"]["Monolog\"]'输出src/ -
composer show --format=json也能拿到require、type、homepage等所有字段,适合写 CI 检查脚本 - 注意:
composer show不显示 README 全文,多数包的readme字段为空;它也不替代文档,只反映包声明的元数据 - 如果输出里没有
source或dist字段,说明该包是path类型或本地开发模式引入的
真正容易被忽略的是:所有这些操作都依赖当前目录下存在有效的 composer.json 和已生成的 composer.lock;如果刚 clone 项目但还没跑 composer install,composer show vendor/package-name 就会直接报 not installed,而不是自动 fallback 到远程查询。










