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

标签 javascript npm nexus devops package.json

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

配置

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

  • [PUBLIC] - 公共(public) npm 注册表的代理
  • [PRIVATE] - 我自己的包的私有(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 组存储库完成吗?

最佳答案

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

关于javascript - 如何 npm 发布到 Nexus 组存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43367645/

相关文章:

maven - 关于MavenartifactID的命名约定的最佳实践(有限制吗?)

jenkins - 如何通过Gradle任务使用Jenkins将WAR文件发布到Maven(Nexus)存储库

npm - 有没有办法让 `npm pack` 递归地包含所有依赖包而不仅仅是基础包?为什么要这样做?

node.js - 使用其他文件的内容预处理(填充、生成)文件

gradle - 通过bamboo将gradle项目部署到nexus

javascript - 在 'Switch' 中找不到导出 'Switch'(导入为 'react-router-dom')

javascript - JS 更新 onclick 事件多个值

javascript - Div 悬停指针

javascript - 使用 JavaScript 将字符串转换为标题大小写

reactjs - 在没有端口的情况下启动 ReactJS 应用程序