使用不同版本的Node的Azure Devops VSTS构建代理

在本地运行的项目运行良好,npm install命令成功完成。我使用的是Node 11.5,最近安装的文件加载器没有问题。

但是,当我将构建推送到VSTS并运行'npm install'命令时,我在日志输出中注意到,由于某种原因,它使用的是Node 12.13,而直到现在,它一直是Node 11.5。该命令未成功完成,并失败,并显示以下内容:

gyp ERR! build error 
gyp ERR! stack Error: `C:\Program Files (x86)\microsoft Visual 
Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 
1
gyp ERR! stack     at ChildProcess.onExit 
(D:\a\1\s\Navico.Global\Navico.Global.Web\node_modules\node- 
gyp\lib\build.js:262:23)
   gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit 
 (internal/child_process.js:272:12)
gyp ERR! System Windows_NT 10.0.14393
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" 
"D:\\a\\1\\s\\Navico.Global\\Navico.Global.Web\\node_modules\\node- 
gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "-- 
libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
 gyp ERR! cwd D:\a\1\s\Navico.Global\Navico.Global.Web\node_modules\node- 
sass
gyp ERR! node -v v12.13.0
gyp ERR! node-gyp -v v3.8.0
 gyp ERR! not ok 
Build failed with error code: 1
npm verb lifecycle node-sass@4.10.0~postinstall: unsafe-perm in lifecycle true

到目前为止,我已经尝试过:

  • 提交package-lock.json,因为最初没有提交它。
  • 将Node-sass从4.9更新为4.10。
  • 将文件加载器添加到package.json中的依赖项。

我猜测最近添加的内容(文件加载器)导致某些内容告诉VSTS上的生成代理使用Node 12.13而不是11.5,但不确定在哪里查找。我是VSTS的新手,之前曾使用过TeamCity,如果我们在构建代理方面遇到任何问题,我们可以远程访问该代理并解决该问题,但不确定在VSTS中如何/是否可行。

任何帮助将不胜感激!

谢谢詹姆斯

wxc3344 回答:使用不同版本的Node的Azure Devops VSTS构建代理

如果您想确定在构建期间正在使用的节点的版本,请添加“ Node.js工具安装程序”任务。在任务中,您可以定义将要使用的节点的确切版本。这样一来,无论Microsoft代理使用的默认版本如何更改,都可以确保您的构建将来可以更可靠地运行。

enter image description here

,

我遇到了类似的问题。我尝试了上述答案,但仍然有问题。一旦我将VSTS中的解决方案更改为使用VS2017而不是“最新”进行构建,我的构建就会再次开始工作。 enter image description here

看起来像Microsoft最近在其托管代理上升级了工具。

,

我删除了包锁并推送了更改,并且构建按预期进行了

本文链接:https://www.f2er.com/3118085.html

大家都在问