【问题标题】:"npm publish" not working in Team City“npm publish”在 Team City 中不起作用
【发布时间】:2016-09-13 09:18:00
【问题描述】:

我正在尝试使用 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 库并自动将这些包部署到服务器中。

【问题讨论】:

    标签: node.js npm teamcity-9.0 sinopia


    【解决方案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 机器上执行此操作。

    希望这会有所帮助。

    【讨论】:

    • 请告诉我你是如何让它在 TeamCity 中工作的。我需要 TeamCity 才能通过 OAuth 访问我的私有 NPM...?
    • @PabloDK 我不确定如何使用 OAuth。请创建另一个 SO 问题。有人可能会回答。
    【解决方案2】:
     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}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多