Mac系统执行npm install卡在idealTree buildDeps阶段如何解决?
问题核心原因
你遇到的超时本质是Node.js 15及以上版本默认开启了IPv6优先的DNS解析策略,你报错中出现的2606:4700::6810:1123:80就是npm官方源的IPv6地址,如果你当前网络的IPv6链路不通,就会出现长时间等待后超时的问题,也是你降级到Node14+npm6后恢复正常的核心原因。
排查步骤
- 验证IPv6连通性:终端执行
ping6 registry.npmjs.org,如果返回100%丢包、请求超时,即可确认IPv6访问npm源不通 - 验证IPv4连通性:终端执行
ping registry.npmjs.org,如果能正常返回延迟数据,即可确认问题出在IPv6优先级策略上 - 检查冗余代理配置:执行
npm config list,如果输出中有proxy/https-proxy配置项,执行以下命令删除:
npm config delete proxy npm config delete https-proxy
长期适配新版Node/npm的解决方案
方案1:强制Node全局优先使用IPv4解析(最推荐,无需修改网络配置)
直接在终端执行以下命令,给Node添加全局启动参数:
# 如果你使用zsh终端(Mac默认终端) echo 'export NODE_OPTIONS="--dns-result-order=ipv4first"' >> ~/.zshrc # 如果你使用bash终端 echo 'export NODE_OPTIONS="--dns-result-order=ipv4first"' >> ~/.bash_profile
执行完成后重启终端,后续所有npm、node命令都会默认优先走IPv4解析,无需降级版本即可正常执行npm install。
方案2:更换国内npm镜像源
你之前设置的是官方源,国内访问本身稳定性较差,可以换成国内的淘宝镜像源:
npm config set registry https://registry.npmmirror.com
更换完成后直接执行npm install即可,不仅能解决解析问题,还能提升依赖下载速度。
方案3:关闭系统IPv6(仅适合不需要IPv6服务的场景)
打开Mac系统设置→网络→选中当前使用的WiFi/有线网络→点击「高级」→切换到「TCP/IP」标签→将「配置IPv6」选项改为「仅本地链接」,点击应用后重启网络即可,后续所有网络请求都不会走IPv6链路。
内容的提问来源于stack exchange,提问作者Artur Müller Romanov
相关产品推荐
相关产品推荐

