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

Posted

技术标签:

【中文标题】如何 npm 发布到 Nexus 组存储库?【英文标题】:How to npm publish to Nexus group repository? 【发布时间】:2017-09-08 02:56:37 【问题描述】:

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

配置

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

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

在 Settings/Security/Realms 我添加了 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】:

您不能发布到组存储库。将您正在使用的 URL 更改为托管 npm 存储库的 URL,这样就可以了。

【讨论】:

以上是关于如何 npm 发布到 Nexus 组存储库?的主要内容,如果未能解决你的问题,请参考以下文章

已启用 npm 注册表 2fa 的 nexus 代理存储库

无法发布到 NPM 注册表(本地)

Nexus 存储库上的 conda 包

如何将 apk 文件上传到 nexus 存储库管理器?

如何在部署阶段设置战争名称到 Nexus 存储库?

sbt:未经授权发布到企业 Nexus 存储库