2016-11-15 84 views
2

我正在一個artifactory沒有互聯網訪問的環境中工作。我們希望使用artifactory作爲npm註冊表和主機。有沒有可能上傳外部依賴關係及其傳遞依賴關係?使用不帶遠程npm存儲庫的artifactory

例如:我在一臺可以上網的計算機上,使用npm install下載了webpack及其所有依賴項。現在我使用artifactory訪問訪問另一個網絡,並且想要上傳我的node_modules文件夾。這種工作是否有用?

回答

3

除了Artifactory的代理/緩存功能,它還可以託管多個本地存儲庫(如npm存儲庫)。這基本上意味着您可以在Artifactory中創建一個npm local repository並將任何npm * .tgz包(您的依賴項)部署到此存儲庫中,Artifactory將爲您的客戶端生成相關的元數據。您只需部署相關軟件包並配置您的npm客戶端以從Artifactory解析。

+1

如何下載webpack及其依賴項作爲tgz而無需手動解析其所有依賴項? – Daniel

+0

@daniel,我的[回覆](http://stackoverflow.com/a/43673807/1021714)解決了這個問題,如果你還沒有。 – braza

0

我最近做了一個節點模塊,應該可以幫助解決這個問題。 你給它一個你想要下載的軟件包列表,它將下載包含所有依賴項的軟件包作爲tar.gz.然後將它們保存在原始的npm文件夾結構中,並創建一個包含所有內容的tar.gz。

然後,您可以將tar.gz與所有依賴關係一起使用,並使用部署嚮導將其部署到Artifactory。 Artifactory Deploy

部署時,請選中複選框「部署爲軟件包工件」。這將提取包的tar.gz並將它們加載到npm存儲庫中。 Artifactory將讀取所有軟件包的package.json,並將加載相關信息,允許您使用npm提取軟件包。

包被稱爲package-bundle,並且可以從NPM使用npm install -g package-bundle

要下載的軟件包,你可以運行命令pb bluebird [email protected],這將提取指定的包可以下載,以及所有需要的依賴。

相關問題