我怎样才能让Sinopia镜像来自registry.npmjs.org的所有npm包?

我正在离线环境中设置一个完整的npm仓库,我正在研究使用Sinopia作为仓库。

这是以前完成的。 在Sinopia github页面上的这个线程描述了一个类似的场景,在这个场景下,你可以将所有包从registry.npmjs.org下载到在线环境中,然后将它们复制到脱机环境,甚至包括一个脚本来将所有文件下载到Sinopia后端。 该脚本似乎工作,但它并没有真正下载所有的软件包 – 只有所有版本的软件包已经安装。

有没有其他方法可以告诉Sinopia从registry.npmjs.org下载所有pagkages,或者我可以以某种方式从registry.npmjs.org获取软件包的完整列表并使用它将所有文件下载到Sinopia?

任何input赞赏!

您可以使用https://skimdb.npmjs.com/registry/_all_docs来获取json与registry中所有软件包的列表。

您可以使用一些简单的shell脚本来提取裸露的名称,例如:

curl -s https://skimdb.npmjs.com/registry/_all_docs | grep \"id\": | cut -d\" -f4 

注意:列表曾经在“registry.npmjs.org/-/short”上可用,但是它被删除了,因为它在服务器上造成了很大的负载(如下所示: https : //github.com/npm/npm- registry-couchapp / issues / 162 )