Composer无法查询包下载量,唯一官方方式是访问Packagist官网对应包主页右上角的“Downloads”数字,该数字为近似累计安装次数,每24小时更新一次,不区分用户或项目,私有包不显示。

Composer 本身不提供包下载量查询功能,所有下载统计只存在于 Packagist 网站后台,且不对第三方开放实时 API。
Packagist 页面上怎么看下载数
这是目前唯一可靠、官方支持的查看方式。每个包主页右上角会显示一个「Downloads」数字,比如 12.4M,代表该包自发布以来的累计安装次数(按 composer install / composer require 触发的下载计)。
- 必须访问
https://packagist.org/packages/{vendor}/{package},例如https://packagist.org/packages/monolog/monolog - 数字是近似值,每 24 小时异步更新一次,不是实时的
- 它统计的是「包被成功安装的次数」,不是「独立用户数」或「项目数」,同一项目反复
composer install也会重复计入 - 私有包(未提交到 Packagist)完全不会显示这个数字
为什么不能用 Composer 命令查下载量
composer show、composer info 或任何内置命令都返回元数据(版本、依赖、描述等),但不包含下载统计——因为 Packagist 不向 Composer 客户端暴露该字段。
- Composer CLI 与 Packagist 的通信仅用于获取
composer.json、版本列表和 dist/source 包地址 - 下载量属于运营数据,不在 Composer 协议定义的包元信息范围内
- 即使你抓包看
https://packagist.org/p/{vendor}/{package}.json的响应,里面也没有downloads字段
别信第三方工具或爬虫脚本
网上有些 Node.js 脚本或 Python 爬虫声称能“自动获取下载量”,它们本质只是模拟浏览器请求 Packagist 页面并解析 HTML —— 这种做法极不稳定且违反 robots.txt。
- Packagist 页面结构经常微调,今天能跑的脚本明天可能就提取不到数字
- 频繁请求会被限流,IP 可能被临时封禁
- 返回的 HTML 中下载数常包裹在
12.4M这类无语义标签里,容错率低 - 没有认证机制,无法区分官方数据和缓存/错误渲染结果
真正想评估一个包的流行度,与其盯着那个不断增长的数字,不如看它的 GitHub stars、issue 响应速度、最近半年是否有新版本、是否被 Laravel/Symfony 等主流框架默认集成——这些信号比下载量更反映实际维护状态和社区信任度。











