如何在 visual studio 团队服务构建和发布管理上使用私有 npm 包提要

How to use private npm package feed on visual studio team services build and release management

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

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

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

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

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

在对我们的构建进行一些密集测试后更新,对于起床有问题的任何人 运行 这个,关于原始问题:

  1. Edit build definition => options => "Allow scripts to access OATH token"

启用后,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



鉴于您为 运行ning 的 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}

可以通过 运行ning 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 Detailed

或者,它可以在 "Packaging".

下您的(Web 界面)VSTS 帐户内的 "Connect to feed" 对话框中生成

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

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

查看此线程了解更多信息 update package.json version automatically

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