Azure DevOps构建管道"npm安装"在节点gyp上失败



我们有一个CD/CI Azure Devops构建管道,该管道已开始为nodejs/node-gyp失败。

  • error gyp info using node-gyp@3.8.0
  • error gyp info using node@16.13.0 | win32 | x64

我们的构建管道没有任何变化,我们使用的池是:

pool:
vmImage: 'windows-latest'

仍映射到windows-2019https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml。

当我们在YAML文件中遇到以下任务时,管道失败:

- task: Npm@1
displayName: 'npm install'
inputs:
command: 'install'
workingDir: 'FrontEnd'
verbose: true

日志文件:

error gyp ERR! UNCAUGHT EXCEPTION
error gyp ERR! stack Error: spawn C:Program Files (x86)Microsoft Visual Studio2019EnterpriseMSBuild15.0BinMSBuild.exe ENOENT
error gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:282:19)
error gyp ERR! stack     at onErrorNT (node:internal/child_process:477:16)
error gyp ERR! stack     at processTicksAndRejections (node:internal/process/task_queues:83:21)
error gyp ERR! System Windows_NT 10.0.17763
error gyp ERR! command "C:\Program Files\nodejs\node.exe" "D:\a\1\s\Presentation\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
error gyp ERR! cwd D:a1sFrontEndnode_modulesnode-sass
error gyp ERR! node -v v16.13.0
error gyp ERR! node-gyp -v v3.8.0
error gyp ERR! This is a bug in `node-gyp`.
error gyp ERR! Try to update node-gyp and file an Issue if it does not help:
error gyp ERR!     <https://github.com/nodejs/node-gyp/issues>
error Build failed with error code: 7
verbose exit 1
##[error]Error: Npm failed with return code: 1

Azure自动更新了它正在使用的节点的版本,同时也向前推送了所需的node gyp版本,这导致我们所有的构建都失败了。它推出的版本是:

  • npm@8.1.0
  • node@v16.13.0

添加task: NodeTool@0以将节点版本设置为上次通过的版本,对我们来说是:

  • npm@6.14.15
  • node@14.18.1

结束代码如下:

- task: NodeTool@0
inputs:
versionSpec: '14.x'

- task: Npm@1
displayName: 'npm install'
inputs:
command: 'install'
workingDir: 'FrontEnd'
verbose: true

重新运行管道后,它再次工作并产生人工制品。

对于经典编辑器用户:

  • 转到管道
  • 单击所需管线附近的编辑
  • 在npm安装任务之前添加Node.js工具安装程序任务
  • 版本规范:14.x
  • 保存管道

我们在npm/node版本中遇到的问题指出node gyp是罪魁祸首,如图所示。如果冲突版本没有显示在特定组件异常下,则当npm安装运行时,npm/node版本会显示在用户代理下

在npm安装任务下,用户代理显示为:

user-agent = "npm/6.14.15 node/v16.13.0 win32 x64"

运行"windows最新"映像时。

使用前面答案中的节点工具,上面的它变为:

user-agent = "npm/6.14.15 node/v14.18.1 win32 x64"

此问题类似于Azure DevOps Pipeline NPM安装任务因节点gyp构建错误而失败

对于那些不使用yaml和经典编辑器的人:

Node.js工具安装程序设置

相关内容

  • 没有找到相关文章

最新更新