如何使用 NPM 将版本和快照发布到 Nexus 实例?

问题描述 投票:0回答:1

我的公司有一台 Nexus 3 服务器,我们在其中存储主要 Maven 环境的所有工件。我正在尝试使用 Node 来做与 Maven 相同的事情:

  1. 基于非硬编码标志部署到快照或发布目录(可能在 Jenkins 作业中)
  2. 自动将附加版本变量附加到快照,以便可以“覆盖”它。由于 Nexus 只喜欢唯一的名称,因此我需要某种方法将构建的工件存储为 x.y.z-SNAPSHOT.1,然后是 x.y.z-SNAPSHOT.2,以便获取 x.y.z-SNAPSHOT 将拉取最新的

理想情况下,构建/部署 SNAPSHOT 和 RELEASE 之间的唯一区别是

npm publish <snapshot/release indicator flag>
,它可以在 .npmrc 文件中查找 URL,但使用在执行构建/部署的计算机上定义的凭据(以便开发人员没有主凭证)。我在设置这个时遇到问题。 NPM 范围看起来很有希望,但这可能只适用于具有一个范围而不是条件范围的包/项目。

我目前尝试过

npm publish --registry=<url>
,但失败并出现错误,提示我需要使用
npm adduser
。我不确定如何提供凭据以及提供哪些凭据(我是为 Nexus 用户提供凭据来存储工件,还是 NPM 根本不允许当前用户(Jenkins 用户)发布?)。

node.js maven jenkins npm nexus
1个回答
0
投票

根据此

answer
,使用作用域包的注册表的实际地址(请参阅package.json文档的名称
section
,或
scope
文档)可以从CLI中覆盖,例如以下:

npm publish --@myscope:registry=http://nexus.dsv.myhost/nexus/repository/npmjs-registry

我尝试了一下,似乎有效。该功能还存在错误修复

© www.soinside.com 2019 - 2024. All rights reserved.