npm install from tfs feed(在构建过程中)给出错误:无法验证

Posted

技术标签:

【中文标题】npm install from tfs feed(在构建过程中)给出错误:无法验证【英文标题】:npm install from tfs feed (on build process) give error: Unable to authenticate 【发布时间】:2019-11-11 11:02:08 【问题描述】:

我们有自己的 npm 包和一个使用它的项目, 我想将它发布到 tfs 提要 - 存储库并从那里安装它,而不是从物理文件中安装。

我从我的开发机器将包发布到提要, 我更改了使用它的项目中的引用。

整个过程在我的机器上运行良好,但是当我尝试在 tfs 的构建过程中使用包时 - 它失败并出现错误:

无法进行身份验证,您的身份验证令牌似乎无效。

我在项目级别创建了带有注册表地址的.npmrc 文件,并在用户目录上创建了另一个带有凭据的文件,我在 TFS 机器上做了同样的事情。

什么会导致 npm 安装(来自我的提要)无法在 tfs 机器上运行?

编辑: 当我在用户级 .npmrc 文件的注册表中添加前缀 @my 时 - 像这样:

@my:registry=https://my-feed-address

错误变为: "我的包没有可用的有效版本"

【问题讨论】:

构建代理与用户一起运行,在提要中授予该用户权限。 @ShaykiAbramczyk,你的意思是饲料设置->权限吗?如果是,则此用户具有所有者权限。 你能分享你的构建管道吗? @ShaykiAbramczyk,我认为这不是重点,因为即使我在 tfs 服务器中运行 npm install 命令 - 在相关 's' 文件夹中的项目文件夹中 - 我也会得到相同的行为. + 我编辑了我的问题。 TFS 是哪个版本的?你在使用 npm install 任务吗?它有一个身份验证部分,您可以指向您的 .npmrc 文件。还有一个你可能想先运行的 npm authenticate 任务。 【参考方案1】:
    在机器上安装这个:npm install -g vsts-npm-auth 运行这个(在 npmrc 文件所在的目录中): vsts-npm-auth -config .npmrc

【讨论】:

我遇到了同样的问题,但这在我的情况下解决了。在每次还原之前的构建管道中,我都会执行此 vsts-npm-auth -config .npmrc。它直接在构建机器中工作(没有构建过程)?你试过了吗?【参考方案2】:

在您的项目文件夹中创建一个文件.npmrc 并添加以下内容

registry=Your URL
always-auth=true

在命令提示符下运行这两个命令

npm install -g vsts-npm-auth --registry https://registry.npmjs.com --always-auth false

vsts-npm-auth -config .npmrc

【讨论】:

根据 DevOps 的文档,这仅适用于 Windows。 不适用于 ubuntu:cannot execute binary file: Exec format error... 可能这仅适用于 Windows 操作系统 对于 Windows,这对我来说是这样的......你必须启用脚本 polycies(例如 Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted Yes )

以上是关于npm install from tfs feed(在构建过程中)给出错误:无法验证的主要内容,如果未能解决你的问题,请参考以下文章

npm install 卡住的时候的处理

npm install node-sass 报错

仅当 tfs build 中的版本更改时 npm publish

OpenWRT下载第三方软件包时 ‘ ./feeds install -a’ 存在的问题

npm 的常用操作

在 Octopus Deploy 中,您可以使用每个环境设置的变量作为 feed 的值吗?