2016-02-12 72 views
1

我正在離線環境中設置一個完整的npm存儲庫,我正在研究使用Sinopia作爲存儲庫。如何讓Sinopia鏡像來自registry.npmjs.org的所有npm軟件包?

此前已經完成了這項工作。 Sinopia github頁面上的This thread描述了一個類似的場景,您可以在聯機環境中從registry.npmjs.org下載所有包,然後將它們複製到脫機環境,並且用戶甚至包括一個腳本以將所有文件下載到Sinopia後端。該腳本似乎可行,但它並沒有真正下載所有軟件包 - 只有所有已安裝軟件包的版本。

有沒有其他方法可以告訴Sinopia從registry.npmjs.org下載所有pagkages,或者我可以以某種方式從registry.npmjs.org中獲取軟件包的完整列表並使用它將所有文件下載到Sinopia?

任何輸入讚賞!

回答

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

+0

非常棒,我可以輕鬆使用它。謝謝一堆!對不起,我沒有足夠的業力來讚揚你: - / – tiasg

相關問題