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

tia*_*asg 1 node.js npm sinopia

我正在努力在离线环境中建立一个完整的npm存储库,我正在研究使用Sinopia作为存储库.

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

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

任何输入都表示赞赏!

ska*_*azi 5

您可以使用https://skimdb.npmjs.com/registry/_all_docs来获取json以及注册表中所有包的列表.

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

curl -s https://skimdb.npmjs.com/registry/_all_docs | grep \"id\": | cut -d\" -f4
Run Code Online (Sandbox Code Playgroud)

注意:该列表曾在"registry.npmjs.org/-/short"中提供,但它已被删除,因为它在服务器上造成了很大的负担(如下所示:https://github.com/npm/npm- registry-couchapp/issues/162)