Composer如何查看某个包的详细信息_Composer info指令大全【手册】

1次阅读

composer show 是查看包详细信息的正确命令,其别名 composer info 功能完全一致;执行 composer show vendor/package-name 可输出含 homepage、source、dist、license 的完整元数据,但 license 字段依赖 vendor/ 存在;不加参数时仅显示 name 和 version 是为避免刷屏;show 基于 vendor/composer/installed.json,反映实际安装状态而非 composer.json 声明。

Composer如何查看某个包的详细信息_Composer info指令大全【手册】

composer show 是查看包详细信息的正确命令,composer info 仅是它的别名,功能完全一致——但很多人误以为 info 更“轻量”或“只查本地”,其实它和 show 完全等价,底层调用同一逻辑。

如何查已安装包的完整元数据(含文档链接、License、源码地址)

执行 composer show vendor/package-name(如 composer show monolog/monolog)会输出结构化信息,其中关键字段包括:

  • homepage:通常是官网或文档入口,比如 https://github.com/Seldaek/monolog —— 这就是你找官方文档的地方
  • source:Git 仓库地址,可用于 fork 或阅读源码
  • dist:压缩包下载地址,含校验 hash,适合审计分发完整性
  • license:许可证类型(如 MIT、apache-2.0),但注意:vendor/ 被清空过,必须先 composer install 才能显示 license,否则该字段为空

为什么 composer show 不加参数时只列名称和版本?

不带包名直接运行 composer show,它默认走的是「简略列表模式」,只展示已安装包的 nameversion。这不是 bug,而是设计取舍:避免在大型项目中刷屏输出几十个包的全部字段。

  • 想快速扫一遍装了哪些包?用 composer show
  • 想确认某个包是否装对了版本?用 composer show vendor/name
  • 想批量导出所有包的 homepage?得写脚本解析输出,因为 Composer 没提供原生 csv/JSON 导出选项

composer showcomposer depends 的本质区别

composer show 回答的是「这个包自己长什么样」,而 composer depends vendor/package 回答的是「谁在依赖它」——这是两个完全不同的依赖视角。

  • composer show symfony/console → 显示 Symfony Console 包的版本、描述、主页等
  • composer depends symfony/console → 列出当前项目中哪些包(如 laravel/framework)声明了对它的依赖
  • 容易踩的坑:有人想查「哪个包提供了 psr/log」,结果错用 show psr/log(根本不存在这个包名),正确做法是 composer depends psr/logcomposer show --all | grep "psr/log"

真正容易被忽略的一点是:所有 show 输出都基于 vendor/composer/installed.json,也就是说,它反映的是「当前 vendor 目录里实际存在的状态」,而非 composer.json 声明的理想状态——如果刚删了 vendor/ 又没重装,show 就啥也查不到。

text=ZqhQzanResources