composer怎么查看已安装的包_composer列出依赖包命令

1次阅读

composer show 可查看已安装包的版本和描述,默认只显示顶层包,加 -a 参数递归显示全部依赖;支持模糊搜索和通配符;composer tree 则以树形结构展示依赖关系,需 composer 2.1+。

composer怎么查看已安装的包_composer列出依赖包命令

直接用 composer show 就能看到所有已安装的包,包括版本、描述和依赖关系。

查看全部已安装包(含版本和简要信息)

最常用也最直观的方式就是运行:
composer show

它默认列出 vendor/ 下所有包,每行一个,格式是:vendor/name version description。比如:
monolog/monolog 2.10.0 Sends your logs to files, sockets, inboxes, databases and various web services

  • 不加参数时只显示顶层包(requirerequire-dev 中声明的)
  • -a 参数(即 composer show -a)会递归显示所有依赖,包括子依赖,但输出很长,适合排查冲突时用
  • 如果项目还没执行过 composer installcomposer updatevendor/ 为空,命令会报错:Could not find package

按名称模糊搜索某个包

想确认某包是否装了、装的是哪个版本?用 composer show 加关键词:

composer show monolog
composer show "doctrine/*"

  • 支持通配符 *,但必须用引号包裹,否则 shell 会提前展开
  • 匹配不到时不会报错,只是没输出——这是最容易误判“没装上”的地方,建议加个 || echo "not found" 做兜底
  • 注意大小写:包名是小写的,Monolog 这种写法查不到

只看依赖树结构(不是列表)

需要理解包之间怎么嵌套依赖?用 composer tree

composer tree monolog/monolog —— 查看 monolog 及其所有子依赖
composer tree --who-requires monolog/monolog —— 查谁依赖了 monolog

  • composer tree 是 Composer 2.1+ 内置命令,旧版本需装插件 hirak/prestissimo 或升级 Composer
  • 输出是缩进式树形,比 show -a 更易读,但不显示版本号(除非加 -v
  • 如果提示 Command "tree" is not defined,说明 Composer 版本太低,优先升级:composer self-update

真正容易被忽略的是:Composer 的“已安装”只取决于 vendor/ 目录是否存在对应文件夹,和 composer.json 是否声明无关。删掉 vendor/show 就失效;而 composer.json 里写了但没 install 的包,show 根本看不到。

text=ZqhQzanResources