我发现我经常对https://www.npmjs.com/上搜索的顺序和表现力不满意。我想应该有一种使用https://api.npmjs.org/或http://registry.npmjs.org/以编程方式查询服务器的方法。但是怎么做呢?文档在哪里?
(或者,有没有节点包可以简化这一点?我知道这不是关于工具或包的建议,所以也许我不应该问这个问题,但如果有一些工具,我可能也会从那里阅读API。)
发布于 2017-01-27 02:06:00
有一个非常好的npm查询站点https://npms.io,我在我的web项目中使用了很多年。它是一个open-source项目,支持高级搜索,并提供更高质量的关键字结果。
他们使用收集到的关于项目的信息为每个包都有一个评分系统。最终分数是根据质量、维护、受欢迎程度和个性这四个不同方面计算得出的。
它也有非常简洁的REST API。
发布于 2015-12-04 05:43:35
当然,至少有一个工具设计用于与注册表对话,那就是npm命令行工具本身。例如,它的search首先更新索引的本地缓存副本,然后对其进行过滤。在update-index中,人们可以看到以/-/all结尾的网址显然很特殊。事实上,将其附加到registry.npmjs.org (故意不将其格式化为链接)将获取一个125M的文件,这对于您的浏览器来说可能太多了。幸运的是,缓存版本存储在~/.npm/registry.npmjs.org/-/all/.cache.json中。从那里可以读取所有当前包的列表。然后,可以继续更详细地查询每个这样的包。
npm search显然没有使用更复杂的方案,这一事实表明这里没有太多的服务器端应用程序接口。
在网络上搜索提到api.npmjs.org的页面,我发现可以从那里检索到download counts。我发现的所有其他文档都使用了这个工具。
在寻找替代方案时,我还偶然发现了npmsearch.com,它提供了一些更多功能的搜索工具,并具有a somewhat documented API。
发布于 2018-03-29 02:59:21
https://skimdb.npmjs.com/registry/_all_docs
这是当前拉取所有包名称的方法。
URL搜索是http://registry.npmjs.com/-/v1/search?text=<searchstring>&size=20
Edit1: 3年后(2021年3月),此端点仍然有效。很高兴它仍然对人们有帮助:)
https://stackoverflow.com/questions/34071621
复制相似问题