2017-04-12 48 views
0

對於一個公司的項目,我想設置使用Artifactory的或Nexus私人NPM註冊表,所以包可以與大家不會對https://registry.npmjs.org/我應該如何設置私人npm註冊表?

發佈他們在行家我會成立一個釋放和快照共享回購。爲了解決這個問題,我會把它們放在一個小組中,同時代理maven central。

npm的設置是怎樣的? npm的semver能夠區分發行版和預發行版,但我認爲將它們路由到不同的註冊表可能是一項相當艱鉅的任務。

另一方面,人們可能希望能夠控制什麼被推送到「版本註冊表」,相應地執行權限。爲此,您必須使用「預發佈」和「發佈」註冊。

回答

0

在如何做到這一點的的Nexus倉庫,如果你真的需要而言,我建議設置:

npm-release (npm hosted) npm-prerelease (npm hosted) npm-all (npm group)

使該組包括成員(這樣你就可以安裝使用一個URL ),然後在您的構建腳本或您用來發布到Nexus Repository中的任何內容中,只需使用--registry標誌來指定要發佈到哪個存儲庫,類似於「發佈」即可:

npm publish --registry http://localhost:8081/repository/npm-release/

而這一個「搶鮮」:

npm publish --registry http://localhost:8081/repository/npm-prerelease/

這裏是專爲Nexus庫3.X故宮文檔,如果你需要更多的幫助:https://books.sonatype.com/nexus-book/reference3/npm.html

1

如果我正確理解了你的話,你希望能夠爲NPM創建一個「發佈」和「快照」存儲庫,就像現在的Maven一樣。

如果確實如此,Artifactory中可以做的是設置2個存儲庫,一個用於「預發佈」,另一個用於「發佈」並在一個虛擬NPM存儲庫下進行聚合。正如您所提到的,您可以爲每個存儲庫擁有一組不同的權限,因此可以控制誰可以部署/解決依賴關係,並且還可以將工件相互移動。

希望能回答你的問題。

+0

嗨碧浪,謝謝回答。我的問題是,如果這是與私人npm註冊管理機構合作的常見方式/最佳做法。或者你會建議一種不同的方法? – Bebef

+0

個人而言,我認爲你可以使用一個回購,它不像npmjs.org有兩個單獨的回購預發佈和發佈。我給出的例子大多是正義的,如果你真的想這樣做(由於某種安全需要),在這裏。 – DarthHater