执行npm start遇getaddrinfo ENOTFOUND错误,多种尝试方案无效
问题:执行
npm start时触发DNS解析错误(ENOTFOUND) 报错信息
Error: getaddrinfo ENOTFOUND prizm-new-luke.pearson.com at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:71:26) { errno: -3008, code: 'ENOTFOUND', syscall: 'getaddrinfo', hostname: 'prizm-new-luke.pearson.com' }
已尝试但无效的方案
- Python环境配置相关:
- 安装pyenv并切换到Python 2.7.18版本,确认
python2和python3命令正常可用 - 执行
npm install --python=/Users/VBOSESA/.pyenv/shims/python2 -f -verbose - 在
~/.zshrc中添加alias python="~/usr/bin/python3"并生效配置
- 安装pyenv并切换到Python 2.7.18版本,确认
- npm与网络配置相关:
- 执行
npm cache clean - 尝试修改
/private/etc/hosts文件 - 删除npm代理配置:
npm config delete proxy、npm config delete http-proxy、npm config delete https-proxy
- 执行
针对性解决方案
1. 验证域名解析有效性
先在终端执行以下命令,确认域名本身是否能被正常解析:
nslookup prizm-new-luke.pearson.com # 或 dig prizm-new-luke.pearson.com
如果命令返回无解析结果,说明是DNS服务器无法识别该域名,可尝试:
- 在Mac系统偏好设置-网络-高级-DNS中,添加
8.8.8.8(Google公共DNS)或114.114.114.114(国内公共DNS) - 执行命令清除本地DNS缓存:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
2. 确认项目配置中的域名正确性
检查项目的配置文件(如.env、package.json或自定义配置文件),确认prizm-new-luke.pearson.com是否存在拼写错误,或者是否应为其他合法域名(比如内网域名需确认是否属于公司内部服务)。
3. 检查内网访问权限(若为公司内部域名)
如果该域名是公司内网服务地址,需确认:
- 是否已连接公司VPN或内网网络
- 公司内网DNS服务器是否已正确配置在本地网络设置中
4. 排查npm依赖的域名指向
检查项目依赖中是否有包的registry或资源地址指向该域名,可通过以下命令查看npm当前配置:
npm config list
若发现相关配置异常,可重置npm默认registry:
npm config set registry https://registry.npmjs.org/
内容的提问来源于stack exchange,提问作者satyanarayan mishra
相关产品推荐
相关产品推荐

