10

我开始在我的 Visual Studio 团队服务帐户上使用私人 npm 提要,遵循他们的指南并添加了一个 .npmrc 文件

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

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

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

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

4

1 回答 1

12

在对我们的构建进行了一些激烈的测试后更新,对于任何在启动和运行时遇到问题的人,以及关于原始问题:

  1. 编辑构建定义 => 选项 => “允许脚本访问 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 构建设置了环境变量NPM_TOKENnpm 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 详解

或者,它可以在“打包”下的(Web 界面)VSTS 帐户内的“连接到 feed”对话框中生成。

另请注意,如果您想自动连续发布此内容,您还必须找到一种增加版本号的方法,例如

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

查看此线程以获取更多 自动更新 package.json 版本

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

于 2016-12-14T10:16:09.167 回答