2017-04-12 82 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