不能。composer show 只查询本地已安装包或 composer.lock 记录的包,不联网、不查 packagist;查远程包详情需用 composer require --dry-run --no-interaction 或 curl 调用 packagist api。

composer show 能直接查 Packagist 包信息吗?
不能。`composer show` 只查本地已安装的包,或当前项目 `composer.lock` 里记录的包——它不联网、不查 Packagist。想看远程包描述,得用 `composer search` 或 `composer browse`,但它们功能有限:前者只返回名字+简短描述,后者直接打开浏览器,没法在终端快速扫一眼。
用 composer command --no-interaction 查远程包详情
Packagist 官方没提供纯命令行的“预览描述”命令,但 `composer require` 在加 `--no-interaction` 和 `--dry-run` 时,会模拟安装并输出包元数据(包括 description、homepage、keywords),且不改任何文件:
composer require monolog/monolog --dry-run --no-interaction
composer require` 在加 `--no-interaction` 和 `--dry-run` 时,会模拟安装并输出包元数据(包括 description、homepage、keywords),且不改任何文件:
composer require monolog/monolog --dry-run --no-interaction
输出里会包含类似这样的片段:
monolog/monolog v2.10.0 Description: Sends your logs to files, sockets, inboxes, databases and numerous web services Homepage: https://github.com/Seldaek/monolog Keywords: log, logging, psr-3
这个 trick 依赖 Composer 的解析逻辑,实际走的是 Packagist API,所以能拿到最新描述。注意:
- 必须指定完整包名(如 `
monolog/monolog`,不能只写 `monolog`) - 如果包名拼错或不存在,会报 `
[InvalidArgumentException] Could not find package xxx` - 某些私有包或未公开包可能触发认证提示,加 `
--no-interaction` 可避免卡住
替代方案:curl + Packagist API 更轻量
如果只是想快速看 description,不用触发依赖解析,直接调 API 更快:
curl -s "https://packagist.org/packages/monolog/monolog.json" | jq -r '.package.description'
前提是你装了 `jq`;没装的话,可用 `grep` 粗略提取:
curl -s "https://packagist.org/packages/monolog/monolog.json" | grep -o '"description":"[^"]*"' | cut -d'"' -f4
注意:
- Packagist API 不限流,但频繁请求建议加 `
-H "User-Agent: cli"` 避免被误判 - URL 中的包名需小写、用连字符替换下划线(如 `
symfony/http-foundation`,不是 `Symfony/HttpFoundation`) - 返回 JSON 里 `
description` 字段可能为空,有些包只填了 `extra` 或 `readme`
别把 composer search 当详情查看器
`composer search monolog` 确实能列出匹配包,但它只显示 `name description` 两列,且 description 是摘要(通常截断前 120 字),还混着关键词和标签。比如:
$ composer search monolog
monolog/monolog Sends your logs to files, sockets, inboxes, databases and numerous web services
看起来够用,但实际漏掉了关键信息:版本支持、PHP 要求、是否活跃维护、是否有安全警告。这些都得靠 `require --dry-run` 或 API 才能确认。
真正要“快速预览”,优先用 `composer require xxx --dry-run --no-interaction`;如果只是查一两个包,API + curl 更干净。别指望 `show` 或 `search` 返回完整描述——它们的设计目标本来就不一样。











