通过api查询npmjsregistry

我发现我经常对https://www.npmjs.com/上的searchsorting和expression不满意。 我想应该有一种方法来编程方式使用https://api.npmjs.org/或http://registry.npmjs.org/查询服务器。 但是,如何? 文档在哪里?

(或者是有节点包,以利于这个?我知道这不是关于工具或包的build议,所以也许我不应该问这个问题,但如果有一些工具,我可能会读取API以及)。

当然至less有一个工具可以与registry进行对话,这就是npm命令行工具本身。 其search示例首先更新索引的本地caching副本,然后对其进行过滤。 在更新索引中,可以读取以/-/all结尾的URL显然是特殊的。 实际上,将它附加到registry.npmjs.org (有意不作为链接格式)将获取一个125M的文件,这对您的浏览器来说可能太多了。 幸运的是,caching的版本存储在~/.npm/registry.npmjs.org/-/all/.cache.json 。 从那里可以读取所有未知软件包的列表。 然后可以继续更详细地查询每个这样的包。

事实上, npm search显然不使用更复杂的计划表明,这里没有太多的服务器端API。

在网页上search提及api.npmjs.org页面我发现可以从那里检索下载计数 。 我发现的所有其他文件都使用这个单一的设施。

寻找替代品,我也偶然发现npmsearch.com ,它提供了一些更多function的search设施,并有一个有点logging的API 。

您始终可以使用NPMregistry客户端: https : //github.com/npm/npm-registry-client 。

如果你仔细看看,你可以得到API的端点。 例如为了得到一个包的dist-tags,那么你可以去/ – /包/ packageName / dist-tags'

所以要得到babel-core dist标签,你可以去http://registry.npmjs.org/-/package/babel-core/dist-tags

最近发现一个非常好的npm查询网站https://npms.io 。 他们也有基于各种数据的每个包的质量点系统。 但数据将是在几天后
API文档: https : //api-docs.npms.io

看看sinopiaregistry界面: https : //github.com/rlidwka/sinopia/blob/master/lib/index-api.js 。 npm客户端的默认registry是https://registry.npmjs.org (在控制台上试用:npm config ls -l)。 所以你可以尝试下面的(参考sinopia API)来获取有关15.0.2的反应

https://registry.npmjs.org/react/15.0.2

您可以使用api-npm节点模块直接查询NPMregistry,您可以获取某个模块的所有属性并下载任何时间范围内的任何模块的属性https://www.npmjs.com/package/api-npm