2

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

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

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

任何输入表示赞赏!

4

1 回答 1

6

您可以使用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-注册表-couchapp/issues/162

于 2016-02-12T12:04:22.510 回答