composer search 查不到包通常是网络不通或关键词不准确,需用完整包名如 monolog/monolog;它不支持模糊匹配、布尔逻辑或类型筛选,仅返回包名和简短描述,推荐直接使用 packagist.org 网页搜索或 packagist api。

composer search 查不到包,先确认是不是网络或索引问题
Packagist 的 composer search 命令本质是查它的公开 API,不是本地数据库。搜不到常见库(比如 monolog/monolog)大概率不是命令写错,而是请求没通到 Packagist,或者关键词太泛被限流。
- 默认走 HTTPS 请求
https://packagist.org/search.json?q=xxx,国内直连常超时或返回空结果 - 不支持模糊匹配后缀,
composer search log不会命中monolog;必须带命名空间或较完整词干,比如composer search monolog - 如果提示
Could not fetch packages...或直接无输出,先试curl -I https://packagist.org/search.json?q=laravel看能否通
search 命令的参数限制和实际可用写法
composer search 功能非常基础,只接受一个关键词,不支持布尔逻辑、版本过滤或字段限定。它返回的是包名(vendor/name)和简短描述,没有 stars、last updated、PHP 版本兼容等信息。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 正确用法只有:
composer search <keyword></keyword>,例如composer search guzzle - 加
--type无效 —— 这个参数在新版 Composer 中已被移除,文档未同步更新,别白试 - 想按类型筛(如只找
library或project),只能靠关键词组合,比如composer search "symfony/http-kernel" - 搜索中文词基本没用,Packagist 元数据几乎全是英文
比 search 更靠谱的替代方案:直接上 packagist.org 网页搜
命令行 search 只适合快速核对某个已知名字是否存在,真要选库、看维护状态、查依赖兼容性,网页端才是唯一可靠入口。
- 网页搜索支持:关键词 + 类型筛选(
Type: library)、PHP 版本过滤(PHP: ^8.1)、排序(Sort by: Last updated) - 点进包页能看到
require里每个依赖的真实约束,比如psr/log: ^1.0 || ^2.0 || ^3.0,命令行完全看不到 - 遇到
composer search foo返回一堆冷门包,但你要的主流实现排在第 5 页?那说明关键词不够准,直接去网页用引号搜"foo/bar"更快
想自动化查包?别硬刚 search,改用 Packagist API + curl 或简单脚本
如果非要在 CI 或工具里查包存在性,composer search 不稳定且无结构化输出,不如绕过 Composer 直接调 API。
- API 地址:
https://packagist.org/search.json?q=phpunit,返回标准 JSON,字段清晰(results[].name,.description) - 加
&per_page=10控制数量,避免大响应;加&type=library可筛类型(注意 URL 里是type,不是命令行参数) - curl 示例:
curl -s 'https://packagist.org/search.json?q=doctrine&per_page=3' | jq '.results[].name'(需装jq) - 注意:API 有频率限制(约 10–20 次/分钟),别在循环里狂刷










