composer怎么查看包详情_composer show包名查看详细方法

3次阅读

composer show vendor/package-name 是查包详情最常用可靠方式,需在项目根目录运行且包名写全;加 -s 查 autoload 和 scripts 配置;–tree 查依赖树,composer depends –tree 查谁依赖它;–all 和 –remote 查远程版本与元数据。

composer怎么查看包详情_composer show包名查看详细方法

直接查包详情:用 composer show vendor/package-name

这是最常用也最可靠的入口,不加参数的 composer show 只列顶层依赖(composer.json 里写的),根本看不到你真正想确认的 autoload 映射、作者、许可证这些关键字段。

  • 必须在项目根目录(有 composer.json 的地方)运行,否则报错或返回空
  • 包名要写全,比如 monolog/monolog,不能只写 monolog(会提示“Package not found”)
  • 输出里 require 字段是它自己依赖谁,不是你项目依赖它——这点容易看反
  • 如果包没装上(比如被 --no-dev 跳过),这个命令就查不到,得先确认安装状态

看 autoload 和 scripts 配置:加 -s 参数

类找不到?自定义命令执行失败?八成是 autoload 或 scripts 配置没生效,-s(即 --show-config)能直接把这两块展开给你看。

  • composer show -s monolog/monolog 会显示 "Monolog": "src/" 这样的映射,说明 MonologLogger 对应 vendor/monolog/monolog/src/Logger.php
  • scripts 区域列出所有可运行的命令(如 post-install-cmd),方便你手动触发调试
  • 注意:-s 在 Composer 2.2+ 才稳定支持,旧版本会报“unrecognized option”,别硬试

查依赖树和引用关系:用 --treecomposer depends

composer show --tree vendor/package-name 是正向依赖视角,但经常更需要知道“谁把我拉进来的?”——比如某个旧版 psr/log 冲突了,得定位源头。

  • composer show --tree guzzlehttp/guzzle 展示 Guzzle 依赖了哪些包,缩进层级清晰
  • 反过来查谁依赖它:composer depends --tree guzzlehttp/guzzle,这比 grep 更准,能穿透多层间接依赖
  • 输出太长时别硬翻,直接管道过滤:composer show --tree | grep "ext-xml"
  • --tree 默认只展示已安装的包,如果某依赖被 --ignore-platform-reqs 绕过,它也不会出现在树里

查远程信息和所有可用版本:--all--remote

还没装包,但想评估是否引入?或者怀疑本地装的是旧版?这时候不能只看已安装数据。

  • composer show --all guzzlehttp/guzzle 列出 Packagist 上所有发布版本(含未安装的),适合做升级决策
  • composer show --remote laravel/framework 拉取最新元数据,包括 homepage(通常是文档地址)、licensetype 等,不依赖本地是否安装
  • --all--remote 本质都是查远程仓库,区别在于前者默认只显示稳定版,后者强制刷新一次最新快照
  • 网络不通或 Packagist 临时故障时,这两个命令会卡住几秒再报错,别以为是命令写错了

真正容易被忽略的是:同一个包,在 composer show 输出里可能有多个字段指向不同来源——sourcegit 地址,dist 是 ZIP 下载链接,homepage 是官网,三者经常不一致。遇到问题时,得对照着看,而不是只信其中一个。

text=ZqhQzanResources