Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 列出npm注册表中的所有公共包大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
出于研究目的,我想列出npm上可用的所有软件包.我怎样才能做到这一点?

https://github.com/npm/registry/blob/master/docs/REGISTRY-API.md#get-all的一些旧文档提到了/ – /所有可能曾经工作的端点,但http://registry.npmjs.org/-/all现在只返回{message”:“deprecated”}.

@H_801_9@解决方法
http://blog.npmjs.org/post/157615772423/deprecating-the-all-registry-endpoint描述了 http://registry.npmjs.org/-/all端点的弃用,以及作为替代方法https://github.com/npm/registry/blob/master/docs/follower.md教程的链接.该教程描述了如何设置“跟随者”,以接收对NPM注册表所做的所有更改.那是……有点奇怪,说实话.显然,如果您想在整个NPM生态系统上进行数据分析,那么这样的关注者不能充分替代获取所有包的列表.

但是,在该代码库中,我们了解到NPM注册表的核心是位于https://replicate.npmjs.com的CouchDB数据库._all_docs端点未被禁用,因此我们可以在https://replicate.npmjs.com/_all_docs点击它以获取一个JSON对象,其rows属性包含一个列表NPM上的所有公共包裹.每个包看起来像:

{"id":"lodash","key":"lodash","value":{"rev":"634-9273a19c245f088da22a9e4ACBabc213"}},

在我写这篇文章时,该响应中有618660行,大约为64MB.

如果您需要有关特定包的更多数据,可以使用其密钥查找特定包 – 例如点击https://replicate.npmjs.com/lodash获取包含Lodash描述和发布历史等内容的巨大文档.

如果您需要有关所有包的所有当前数据,可以使用include_docs参数_all_docs将实际文档主体包含在响应中 – 即命中https://replicate.npmjs.com/_all_docs?include_docs=true.准备好处理大量数据.

如果您需要更多数据,例如下载次数,这些数据未包含在这些CouchDB文档中,那么值得仔细阅读https://github.com/npm/registry/tree/master/docs中的文档,其中详细介绍了其他一些可用的API – 请注意问题中提到的警告,并非所有文档都记录在那里实际上有效.

大佬总结

以上是大佬教程为你收集整理的node.js – 列出npm注册表中的所有公共包全部内容,希望文章能够帮你解决node.js – 列出npm注册表中的所有公共包所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。