composer show 是唯一靠谱的命令,它读取 vendor/composer/installed.json 的磁盘快照,不联网、不依赖 composer.lock,断网或锁文件损坏时只要 vendor/ 存在结果仍可信;默认只显示 composer.json 中 require 和 require-dev 的顶层包,查单个包需全名如 monolog/monolog,大小写敏感且必须含斜杠;加 --tree 展示真实安装依赖树,加 --installed --no-ansi 输出脚本友好清单。

直接用 composer show,别碰 composer list —— 后者只列命令,不查包。
为什么 composer show 是唯一靠谱的命令
它读的是 vendor/composer/installed.json 这个磁盘上的“事实快照”,不联网、不依赖 composer.lock 是否完好。哪怕断网、锁文件损坏,只要 vendor/ 目录还在,结果就可信。
- 默认只显示你写在
composer.json的require和require-dev里的顶层包,不是vendor/下所有目录 - 刚克隆项目但没跑过
composer install?composer show可能仍输出内容——那是从composer.lockfallback 来的“计划安装”,不是真装了 - 执行过
composer install --no-dev?require-dev里的包(比如phpunit/phpunit)就不会出现,哪怕它们还在composer.json里
composer show 查单个包必须写全名
想确认 monolog/monolog 是否真装上了、装的是哪个版本,就得输完整 vendor 名:
-
composer show monolog/monolog→ 正确,返回版本、依赖、autoload 等元数据 -
composer show monolog→ 报错Package not found,因为缺 vendor 段 -
composer show Monolog/Monolog→ 报错,大小写敏感 -
composer show guzzlehttp/guzzle→ 注意斜杠,不能写成下划线或反斜杠
输出里带 (installed) 标记(Composer 2.5+ 默认启用)才说明已解压进 vendor/;否则只是锁文件记录,还没真正落地。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
查依赖树和导出清单:别只靠默认输出
默认 composer show 不展开间接依赖,看不出 psr/log 是谁拉进来的。得靠参数组合:
-
composer show --tree→ 显示缩进结构,还原真实安装路径,例如:laravel/framework v10.48.12<br>└── symfony/console v6.4.7<br> └── psr/log 3.0.0
-
composer show --installed --no-ansi→ 一行一个vendor/name version,适合脚本解析或审计 -
composer show --direct --format=plain→ 只导出你亲手require的包,不含子依赖 - 终端宽度不够导致包名被截断?加
| less -S或重定向:composer show --tree > deps.tree
全局包不能用 composer show 查
用 composer global require laravel/installer 装的工具,不在当前项目 vendor/ 下,得显式加 global:
-
composer global show→ 查全局已安装包(路径通常是~/.composer/vendor/) -
composer global show --format=json→ 输出 JSON,方便 CI 或脚本消费 -
composer show在项目根目录运行,永远只看当前项目的vendor/ - 全局命令能否执行,取决于
~/.composer/vendor/bin是否在$PATH中,但composer global show本身不检查这个
最稳的验证方式永远是:先确保 composer install 已成功执行,再查;怀疑结果不准时,直接 ls vendor/ 看目录是否存在 —— 这一步不能跳。










