正在下载整个NPM包列表

egdjgwm8  于 2023-02-04  发布在  其他
关注(0)|答案(1)|浏览(143)

这个问题是国家预防机制特有的。
几年前,我写了一个名为qnp的工具,它可以下载整个npm软件包列表,然后执行本地查询,速度非常快,每个查询大约0.2秒。这允许对现代编程世界进行非常有趣的研究,通过作者姓名、描述、标签等进行过滤,执行数百个查询,检查结果,分析,有想法,执行更多的查询。官方客户端很好,但是不允许你以思维的速度做非常快的查询。下面是我的问题:
大约一年前,NPM的注册表元数据DB的位置被放弃,现在它返回一个空文件。现在我如何下载/获取整个元数据列表?我至少需要这些字段:标题/作者/描述/关键字/日期。可选下载计数、依赖项列表、版本。
下面是之前运行的代码:

var request  =  http.get({
         host: 'registry.npmjs.org',
         path: '/-/all/static/all.json',
         headers: {
            'Accept-Encoding': 'gzip, deflate'
         }
      }, function (a,b,c) {
      var done  =  0 ; var all  =  parseInt(a.headers['content-length'])
      a.on('data', function (a,b,c) {
         done += a.length
         process.stdout.write( '\r' + (done / (all/100)).toFixed(2)+'%  ' )
      })
      console.log('download started') 
      a.pipe(S)
      S.on('finish', function (a,b,c) {
         console.log('download complete') 
         S.close(f)
      })
   })
06odsfpq

06odsfpq1#

当我搜索答案的时候,这篇文章出现在了顶部,让我指出两个包,可能对人们回答这个老问题有帮助:

使用第一个,我下载了一个包含2.247.694个条目的列表

pnpx all-the-package-names > ~/temp/all-the-package-names.txt

其中pnpxpnpm的等价物,npx是npm CLI运行程序(后者与NodeJS一起安装)。

相关问题