3

我正在尝试使用 Team City CI 运行测试并将 NPM 包发布到本地 sinopia 存储库。我在服务器上设置了 sinopia 存储库,我可以使用npm publish本地计算机的命令成功地将 npm 包发布到该存储库。

但是当我尝试在 Team City 中自动执行此操作时,我收到如下所示的身份验证错误。

在此处输入图像描述

Team City Build 步骤如下:

1.  npm install
2.  npm test
3.  npm set @scoped:registry http://{host}:{port}
    npm publish

1、2步运行正常。但是在第三步抛出上述错误。这肯定与使用 Sinopia 服务器对 Team City 服务器进行身份验证有关。两者都安装在不同的机器上。

在发布包之前,我有什么办法可以传递auth token给 sinopia。

注意:我可以将 NPM 包发布到Octopus Deploy库并自动将这些包部署到服务器中。

4

2 回答 2

1

我按照下面的说明解决了,不知道有没有更好的方法。

我登录到我的 DEV 服务器并从命令提示符运行以下命令。

npm adduser
typed <username>  This must be admin user
typed <password>
typed <email>

用户创建成功。然后

npm config edit
npm configuration will open in notepad. You will see `auth` token there.

你会看到类似_authToken=f04c81af-781d-4fc3-a811-4db226950b55. 然后,Team city 没有抱怨身份验证。

注意:您必须在Team City Agent机器上执行此操作。

希望这可以帮助。

于 2017-02-13T20:03:22.930 回答
0
 npm publish --registry //domain.com/repository/:_authToken=${CI_NPM_TOKEN}

或对于 Nexus

npm publish --registry //domain.com/repository/some-npm-repositury/:_authToken=NpmToken.${CI_NPM_TOKEN}
于 2021-02-20T13:37:48.757 回答