Azure DevOps 自动更新节点/npm 版本 - 这可以避免吗?

Coo*_*ops 5 node.js npm azure-devops azure-pipelines

2021 年 12 月 1 日(撰写本文时的几天前),Azure DevOps 似乎自动升级了他们默认使用的 Node 和 npm 版本,这破坏了我们的构建管道。

之前:2021-11-30T15:30:01.113Z

在此输入图像描述

之后:2021-12-01T09:00:00.450Z

在此输入图像描述

(中间没有对这些构建管道进行任何更改)

我现在已在管道中的“Node.js 工具安装程序”步骤中手动设置版本(如此处建议的那样)。

是否可以避免这种自动升级,或者我是否缺少一个网站或电子邮件通讯,可以在 Microsoft 升级他们在幕后使用的版本时通知 Azure DevOps 用户?

jes*_*ing 8

Microsoft 将自动维护托管管道的映像。Node 6 不再受到 Node 基金会的支持,并且存在已知的安全问题。在这些情况下,Microsoft 会自动升级此类依赖项,以保持映像的“安全”。除非您在自己的硬件/云订阅中运行自托管代理,否则无法选择退出。

您可以在虚拟环境存储库中跟踪公告正在进行的工作以及代理映像的发布。Azure Pipelines 与 GitHub Actions 使用相同的图像。

Microsoft DevOps 博客上还宣布了更大的更改(例如弃用 windows-2016 映像)。

要强制使用比默认版本更旧的 Node/Npm,您需要将 Node Tool Installer 任务添加到您的工作流程中,并将版本设置为您想要的版本:

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

或者:

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

您始终可以运行自定义npm -g npm@^6来强制 npm 升级/降级。