我正致力于在离线环境中设置完整的npm存储库,并且我正在考虑使用Sinopia作为存储库。
显然以前已经做过。 Sinopia github页面上的This thread描述了一个类似的场景,您可以在将它们复制到脱机环境之前从在线环境中从registry.npmjs.org下载所有包,并且用户甚至包含一个脚本来将所有文件下载到Sinopia后端。该脚本似乎有效,但它并没有真正下载所有软件包 - 只安装了所有版本的软件包。
有没有其他方法告诉Sinopia从registry.npmjs.org下载所有的pagkages,或者我可以以某种方式从registry.npmjs.org获取一个完整的包列表并使用它将所有文件下载到Sinopia?
感谢任何输入!
答案 0 :(得分:5)
您可以使用https://skimdb.npmjs.com/registry/_all_docs获取json以及注册表中所有包的列表。
您可以使用一些简单的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)