You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级npm至8.1.0后Azure DevOps Pipeline的npm install步骤因无效主机名报错

错误信息:getaddrinfo ENOTFOUND proget.websilk.local

问题根因

npm v6 和 v8 对 package-lock.json 中 resolved 字段的处理逻辑存在明显差异,这是报错的核心原因:

  • npm 6.14.15 版本执行 npm install 时,优先读取本地npm配置的registry地址拉取依赖,只有当包校验和不匹配、本地无对应缓存时,才会尝试调用 resolved 字段记录的地址。只要你的依赖包在当前配置的registry可正常拉取,就不会触发无效域名的请求。
  • npm 8.1.0 版本调整了依赖拉取规则,会优先尝试使用 resolved 字段记录的地址拉取依赖,仅当该地址请求明确失败时才会 fallback 到配置的registry,因此lock文件中存在的旧无效域名会直接抛出解析错误。

可用修复方案

可根据实际场景选择以下任意一种方案解决:

  • 批量替换lock文件内无效地址:将 package-lock.json 中所有 proget.websilk.local 替换为你当前使用的npm registry地址(例如官方公开registry https://registry.npmjs.org/ 或你们团队内部的私有registry地址),替换完成后重新提交lock文件即可,后续构建不会再访问旧地址。
  • 执行安装时忽略resolved字段:在构建的 npm install 命令后添加 --no-lockfile 参数,让npm完全根据 package.json 声明拉取依赖,跳过lock文件的地址记录。
  • 锁定构建环境的npm版本:如果不需要使用新版npm特性,可在构建步骤开头添加版本降级命令,将npm版本固定为6.14.15:npm install -g npm@6.14.15

内容的提问来源于stack exchange,提问作者Lock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 16:36:03