如何npm发布到Nexus组存储库?

时间:2017-04-12 10:57:32

标签: javascript npm nexus devops package.json

我安装了Nexus Repository Manager OSS 3.2.1并在本地计算机上运行它。

配置

我在Nexus中定义了三个NPM存储库:

  • [PUBLIC] - 公共npm注册表的代理
  • [PRIVATE] - 我自己的软件包的私有存储库
  • [NPM] - 一个群组存储库,允许按此顺序访问[PRIVATE]和[PUBLIC]

在设置/安全/领域中,我添加了npm Bearer Token Realm。

下载

我可以从[PUBLIC]下载包,它可以按预期工作。

.npmrc 
registry=http://localhost:8081/repository/PUBLIC
npm install react // works fine, downloads from [PUBLIC]

我可以从[NPM]下载包,按预期工作。

.npmrc 
registry=http://localhost:8081/repository/NPM
npm install react // works fine, downloads from [PUBLIC]

它不适用于[PRIVATE],因为我没有名为react的包。

出版

我不想发布到[PUBLIC]。

我可以将包发布到[PRIVATE],它可以按预期工作。

.npmrc 
registry=http://localhost:8081/repository/PRIVATE
npm publish // works fine, publishes to [PRIVATE]

我无法将包发布到[NPM],这很奇怪。

.npmrc 
registry=http://localhost:8081/repository/NPM
npm publish // fails, should publish to [PRIVATE]
// gets HTTP 400

错误

详细日志:https://pastebin.com/5GuqNNhf

问题

据我所知,我可以在package.json文件中使用publishConfig设置不同的url来发布包,但对我而言,它是重复的配置。

可以使用Nexus组存储库吗?

1 个答案:

答案 0 :(得分:10)

您无法发布到组存储库。将您正在使用的URL更改为托管的npm存储库的URL,该URL将起作用。