composer如何查看已安装的包_show命令详解与版本信息查询【方法】

10次阅读

composer show 默认只显示顶层依赖,加 –tree 查完整依赖树,加包名查详细信息,–format=plain 输出纯文本格式便于脚本解析,未成功安装或在 require-dev 中且启用 –no-dev 时则不可见。

composer 如何查看已安装的包_show 命令详解与版本信息查询【方法】

直接运行 composer show 就能列出所有已安装的包及其版本,但默认只显示顶层依赖;想看完整依赖树或精确查某个包的版本,得加参数或换命令。

查看全部已安装包(含依赖)

不加任何参数的 composer show 只显示 composer.json 里直接声明的包,不会递归展开 vendor/ 里的间接依赖。要看到整个依赖图,必须加 --tree

composer show --tree

这个输出会按层级缩进展示依赖关系,比如 monolog/monolog 下面跟着它依赖的 psr/log。注意:如果项目依赖极深,输出可能很长,建议配合 grep 过滤,例如:

composer show --tree | grep "guzzle"

精确查询某个包的详细信息

composer show 加包名,能查到该包的当前安装版本、描述、许可证和依赖项。例如:

composer show symfony/http-foundation

关键点:

  • 包名必须拼写完全正确,大小写敏感(如 symfony/consoleSymfony/Console
  • 如果包未安装,会报错:Package not found: symfony/http-foundation
  • 输出中 versions 行显示的是实际安装的版本号(可能是 dev-mainv6.4.0 或带 -dev 后缀的提交哈希)

只列出包名和版本(适合脚本解析)

--format=plain 可以去掉颜色和额外字段,每行一个 vendor/name version,方便管道处理:

composer show --format=plain

输出示例:

doctrine/annotations v1.14.3 monolog/monolog 3.5.0 phpunit/phpunit 10.5.12

这种格式适合在 CI 脚本里做版本校验,比如检查是否用了特定安全补丁版本。注意:--format=json 也能用,但 JSON 输出包含嵌套结构,解析成本更高。

为什么 composer show 查不到刚 require 的包?

常见错误是运行了 composer require xxx 但没成功执行完——比如中途 Ctrl+C 中断,或网络失败导致 vendor/ 没更新。此时 composer show xxx 会提示包未找到,而 composer show 列表里也没有它。解决方法 只有两个:

  • 重新运行 composer require xxx,确保终端末尾出现 Installing xxx (x.x.x)Generating autoload files
  • 或手动检查 vendor/composer/installed.json,确认该包是否出现在里面

另外,如果项目启用了 composer install --no-dev,而包被声明在 require-dev 里,那它也不会出现在 show 结果中——这点容易被忽略。

星耀云
版权声明:本站原创文章,由 星耀云 2026-01-01发表,共计1257字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources