composer show vendor/package-name可查已安装包完整元数据,需写全名、在项目根目录执行且vendor目录存在;加-s查autoload/scripts,--tree查依赖树,--all查远程所有版本。

用 composer show 查,别试 composer info、composer search 或 composer list —— 它们要么等价、要么错位、要么根本不是干这事的。
查已安装包的完整元数据:必须写全名,且 vendor/ 得存在
直接运行 composer show monolog/monolog 会输出版本、description、homepage、license、source、dist、autoload、require 列表、required by 列表等字段。这些信息全部来自 vendor/monolog/monolog/composer.json 和实际安装状态,不查网络、不读 composer.json 声明、也不依赖 lock 文件是否最新。
- 包名必须带 vendor,
monolog或Monolog/Monolog都会报Package not found(大小写敏感) - 如果
vendor/monolog/monolog目录不存在,命令直接失败——删过vendor/后没跑composer install就查不了 - 若包只在
require-dev里,且你上次用了--no-dev,那它就不在vendor/中,composer show也查不到 - 输出里的
versions行显示的是当前实际安装的版本(如v3.5.0、dev-main或带 commit hash 的 dev 版),不是composer.json里写的约束
查 autoload 映射和 scripts 钩子:加 -s(--show-config)
类加载失败或自定义命令不触发,大概率是 autoload 或 scripts 配置不对。composer show -s monolog/monolog 会明确展开这两块内容,比翻源码或 composer.json 快得多。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
"Monolog\": "src/"表示Monolog\Logger对应vendor/monolog/monolog/src/Logger.php -
scripts字段里列的post-install-cmd等钩子,能确认是否被正确注册进 Composer 生命周期 - 该选项在 Composer 2.2+ 才稳定支持;旧版本会提示
unrecognized option,别硬试
查依赖树或反向依赖:用 --tree 和 depends --tree
composer show --tree laravel/framework 展示从该项目出发、向下拉入的完整依赖路径,缩进层级 = 依赖深度。这是定位“为什么装了两个 psr/log”的唯一可靠方式。
- 输出基于
composer.lock解析结果,不是composer.json声明——所以它反映的是真实安装结构 - 若某包只在
require-dev且被--no-dev排除,就不会出现在树中 - 想查谁依赖了某个包(比如
psr/log),用composer depends --tree psr/log,不是show的功能 - 输出太长时,直接管道过滤:
composer show --tree | grep "guzzle"
查远程所有版本或未安装包:必须加 --all,不是 -a
composer show --all guzzlehttp/guzzle 会绕过本地缓存,直连 Packagist API,返回该包所有已发布版本(含 alpha/beta/rc)、PHP 兼容性、是否被标记为 abandoned 及替代包名。
-
--all是双横线,-a是无效别名,会被忽略(官方文档写--all,但很多老资料误传为-a) - 响应慢一点,且受 Packagist 服务状态影响;私有仓库需提前配置好
composer config repositories. - 输出里若出现
abandoned: symfony/http-foundation,说明该包已弃用,得按提示迁移到替代方案 - 它不显示 README 全文,除非包发布时把 README 嵌入了 metadata(极少数);真要看文档,还是得点
homepage字段
最常被忽略的其实是前提:所有 show 命令都以 vendor/ 目录的真实存在为底线。清过 vendor/、没重装、又没注意当前目录是不是项目根,就容易卡在“查不到”这个环节——它不报错,只是安静地告诉你“包没装”。










