本文详解因代理配置不当或网络设置异常导致 `npx create-nx-workspace` 命令无法访问 npm 官方仓库(registry.npmjs.org)的典型错误,并提供可立即生效的代理清理与 registry 配置方案。
在企业内网或受控网络环境中执行 npx create-nx-workspace ng-mfe 创建 Nx 微前端工作区时,常遇到如下报错:
npm ERR! code ENOTFOUND npm ERR! network request to http://registry.npmjs.org/create-nx-workspace failed, reason: getaddrinfo ENOTFOUND iaccess.ril.com
该错误明确指向网络解析失败——npm 尝试连接的并非 registry.npmjs.org,而是类似 iaccess.ril.com 的内部域名,说明本地 npm 配置被错误地指向了公司代理网关,且该网关本身无法正确转发至公网 npm 仓库。
运行以下命令检查是否误设了 proxy/https-proxy:
npm config list
重点关注输出中是否包含:
proxy = "http://Sowdjk.eioqepi:***@8080" https-proxy = "http://Sowdjk.eioqepi:***@8080" registry = "http://registry.npmjs.org/"
⚠️ 注意:
执行以下命令删除所有代理相关设置:
npm config delete proxy npm config delete https-proxy npm config delete strict-ssl # 如曾设为 false,一并清除以避免证书问题
确保 registry 使用 HTTPS 协议:
npm config set registry https://registry.npmjs.org/
✅ 验证是否生效: npm config get registry # 应输出 https://registry.npmjs.org/
若需保留全局代理但仅对 npm 操作禁用,可添加环境变量:
# Windows PowerShell $env:NODE_OPTIONS="--no-proxy" # 或 Linux/macOS export NODE_OPTIONS="--no-proxy"
再运行 npx create-nx-workspace ng-mfe。
完成上述配置后,重新执行初始化命令即可正常拉取 Nx 脚手架:
npx create-nx-workspace@latest ng-mfe
如仍失败,请检查系统 DNS 设置(如 nslookup registry.npmjs.org 是否返回有效 IP),或尝试切换至移动热点等直连网络进一步验证是否为纯网络策略限制。