我开始在我的visual studio团队服务帐户上使用私有npm提要,按照他们的指南并添加.npmrc文件
registry=https://ascend-xyz.pkgs.visualstudio.com/_packaging/AscendNPMFeed/npm/registry
always-auth=true
问题是构建管道现在不起作用,因为它需要来自这个私有包的一些包。
告诉npm它可以使用visual studio团队服务上的构建访问令牌进行身份验证的正确设置是什么?
我是否需要设置环境变量,调用npm login或someting作为构建步骤?
答案 0 :(得分:12)
经过对我们的构建进行一些激烈测试后更新,对于任何遇到此问题并且遇到问题的人,以及原始问题:
- 修改构建定义=> options => "允许脚本访问OATH令牌"
醇>
启用后,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,因为它处于分离状态。