composer show vendor/package 可查已安装包的完整元信息,包括版本、依赖、homepage、license、源码地址等;不带参数仅列简略清单,vendor/ 缺失时命令失效。

直接用 composer show(或 composer info)就能查到包的完整信息,包括版本、依赖、homepage、license、源码地址等——它不是“教程级命令”,而是开发中高频调试和溯源的实用工具。
查某个包的详细元信息:用 composer show vendor/package
这是最常用场景:你想确认刚装的包到底是什么版本、文档在哪、是否开源、有没有被弃用。
-
composer show monolog/monolog会输出 homepage(通常是文档链接)、source(GitHub 地址)、dist(下载包 URL)、autoload 配置、require 列表等 - 注意:
homepage字段大概率就是官方文档入口,比如https://github.com/Seldaek/monolog或https://monologphp.github.io/monolog/ - 如果只执行
composer show(不带参数),只会列出所有已安装包的名称和版本,信息非常简略,基本没用 - 若提示 “Package not found”,说明该包未被安装(
vendor/里没有),或拼写错误(大小写敏感!)
查 license 授权协议:必须先确保 vendor/ 存在
很多人执行 composer licenses 却看不到结果,根本原因不是命令错,而是环境没准备好。
-
composer licenses读取的是vendor/下各包的composer.json里的license字段,不是远程仓库数据 - 如果清过
vendor/又没运行composer install,命令会直接报空或跳过——它不会自动重装 - 想快速验证:先
ls vendor/monolog/monolog看目录是否存在;不存在就先composer install再试 - 某些包 license 字段写的是
MIT,有些是BSD-3-Clause,还有些是proprietary,别光看名字,得点进composer.json确认原文
为什么不用 composer search 查包详情?
composer search 是面向“发现未知包”的命令,不是查已装包的工具,两者定位完全不同。
-
composer search log返回一堆含 “log” 的包名列表,但不告诉你哪个是主流、哪个已归档、哪个 require PHP 8.2+ - 它不返回版本、homepage、license,也不校验当前项目是否兼容——容易搜到“看着像但不能用”的包
- 真正要评估一个包是否可用,应该先
composer require vendor/package(触发依赖分析),再立刻composer show vendor/package看详情 - 搜索后直接装:可以用
composer require "vendor/package:^3.0"加版本约束,避免拉下不兼容的大版本
真正容易被忽略的点是:所有 show / info / licenses 命令都依赖本地 vendor/ 的完整性。删了 vendor/ 又没 install,它们就变成“查无此包”的哑命令——这不是 bug,是设计使然。










