如何在Visual Studio团队服务构建和发布管理中使用私有npm包feed

时间:2016-12-05 00:19:27

标签: azure-pipelines azure-pipelines-release-pipeline azure-artifacts

我开始在我的visual studio团队服务帐户上使用私有npm提要,按照他们的指南并添加.npmrc文件

registry=https://ascend-xyz.pkgs.visualstudio.com/_packaging/AscendNPMFeed/npm/registry
always-auth=true

问题是构建管道现在不起作用,因为它需要来自这个私有包的一些包。

告诉npm它可以使用visual studio团队服务上的构建访问令牌进行身份验证的正确设置是什么?

我是否需要设置环境变量,调用npm login或someting作为构建步骤?

1 个答案:

答案 0 :(得分:12)

经过对我们的构建进行一些激烈测试后更新,对于任何遇到此问题并且遇到问题的人,以及原始问题:

  
      
  1. 修改构建定义=> options => "允许脚本访问OATH令牌"
  2.   

启用后,VSTS遇到.npmrc文件,它将运行npm命令

vsts-npm-auth对你来说,这意味着源代码管理中的.npmrc只需要包​​含

registry=https://YOUR_DOMAIN.pkgs.visualstudio.com/_packaging/FEEDNAME/npm/registry
always-auth=true

这适用于使用VSTS Npm任务的构建,无论是publish还是install

<击>
假设您为正在运行的VSTS Build设置了环境变量 NPM_TOKEN npm publish命令可以在.npmrc文件中替换它。 http://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules

<击>

因此,您检查到源代码管理的.npmrc应该看起来像

registry=https://YOUR_DOMAIN.pkgs.visualstudio.com/_packaging/FEEDNAME/npm/registry
always-auth=true

<击> // YOUR_DOMAIN.pkgs.visualstudio.com/_packaging//npm/:_authToken=${NPM_TOKEN}

可以通过运行vsts-npm-auth命令生成令牌 https://www.npmjs.com/package/vsts-npm-auth

请注意,在Windows上,它有时需要目标和源rc文件的完整路径(其中-T:write-token-to-this-target-file),例如

  

vsts-npm-auth -config c:\ mysrc \ .npmrc -T c:\ mysrc \ .npmrc -V详解

或者,它可以在&#34;连接到Feed&#34;对话框内的(网络界面)VSTS帐户&#34;包装&#34;。

另请注意,如果您想要自动发布此版本,您还必须找到一种方法来修改版本号,例如

npm version patch --force -m "Published new version"

请查看此主题以获取更多信息 update package.json version automatically

默认情况下,VSTS会检查HEAD提交ID,因此它不能直接运行npm version命令并推回git,因为它处于分离状态。