Azure DevOps 在“npm install”上失败

Fyl*_*lix 2 npm-install azure-devops

我们有一个 CD/CI Azure DevOps 构建管道,今天突然停止工作。它已在我们的管道中成功调用数月。

失败的组件是 "npm install" ,它失败并在详细日志中显示以下错误:

在此处输入图片说明

我在谷歌周围搜索并建议运行:npm cache clear --force before npm install。我试过了,但同样的错误仍然存​​在。

然后我更早地在日志中查找并看到以下内容:

在此处输入图片说明

我尝试浏览到https://github.com/sass/node-sass/releases/download/v4.12.0/win32-x64-83_binding.node并收到消息“找不到页面”。

我不知道这是否与 npm 失败的根本原因有关,但它似乎支持我的假设,即截至撰写本文时(2020 年 11 月 17 日),“npm install”存在问题。

使用 Azure DevOps for CD/CI 的其他人有同样的问题吗?我查看 NPM 事件页面并看到此问题https://status.npmjs.org/incidents/r1tlhscrw3r6但它应该已修复。

Gri*_*air 10

根据@Matt的回答,我将发布您需要修复此问题的 yml 片段:

- task: NodeTool@0
  inputs:
    versionSpec: '12.x' 
Run Code Online (Sandbox Code Playgroud)


Dav*_*tes 10

对于仍然使用图形 UI 而不是 YML 文件的任何人,您可以添加“ Node.js 工具安装程序”任务并配置其版本。它看起来像这样(其中版本规范包含您要运行的 Node.js 版本): 在此输入图像描述 另请注意,它是在“ npm install ”任务之前


Mat*_*att 5

最近,对默认版本的 Node.js 的默认 Azure DevOps 代理映像进行了重大更改。它从 12.x 增加到 14.x。

重大变化

图像上 Node.JS 的默认版本将从 12.x 更新到 14.x

目标日期

对于 Windows、Ubuntu 映像,此更改的推出将于 2020 年 11 月 2 日开始,需要 3-4 天对于 MacOS 映像,将于 11 月 9 日开始推出。

变革的动机

在图像上,我们总是默认安装 LTS 版本的 Node.JS。2020 年 10 月 27 日,Node.JS 14 成为 LTS 版本。2020 年 11 月 30 日,Node.JS 12 将切换到维护模式。

可能的影响

如果你依赖默认的 Node.JS 版本并且你的项目与 Node.JS 14 不兼容,它可能会开始失败

缓解方式

请考虑使用 Node.js工具安装程序任务(用于 Azure DevOps)和 setup-node(用于 GitHub 操作)切换回 Node.JS 12。切换将花费不到一秒钟的时间。Node.JS 12 仍然可以与 Node.JS 8、10 一起用于图像。