我们已在基于 Windows 的自托管代理上将 Node 更新至版本 10.16.3,并将 NPM 更新至版本 6.11.3(目前均为最新版本)。
但是,在作业运行日志中,我们看到代理报告 NPM 版本为 6.9.0,这是 Node 10.16.3 安装的默认版本。
在托管代理所在的虚拟机内,如果我在 CMD 中运行“npm”,我会获得 NPM 的最新版本。另外,如果我运行代理运行的相同命令来获取版本,我仍然可以获得 NPM 的正确版本:
这里可能出了什么问题? 我们想要最新版本的 NPM 的原因是因为我们的构建使用它运行得更快。
谢谢!
最佳答案
我们对这个问题采取了非常业余的方法。当我们通过 RDP 登录时,我们使用用户“代理”,并且所有安装的范围都限于该用户。但是,代理使用 NetworkService 用户,该用户对于 NPM 和 Node 有自己的作用域。
该修复基本上是在我们的构建管道中添加步骤来检查 NPM 的最新版本并在未安装的情况下安装它。
关于node.js - Azure DevOps 自托管代理报告 NPM 版本错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58198764/