执行npm i安装Angular项目依赖时报ETIMEDOUT错误是否为网络或代理问题?
npm安装Angular依赖ETIMEDOUT报错解决方案
执行
npm i时触发报错:code: 'ETIMEDOUT', errno: 'ETIMEDOUT', syscall: 'connect', type: 'system'
该报错为典型的网络或npm代理配置异常导致的问题,npm拉取依赖包时无法与远端registry服务器建立连接,触发系统层连接超时。
排查解决步骤
- 步骤1:切换npm镜像源
默认官方npm源在国内访问稳定性较差,可先执行以下命令查看当前源:npm config get registry
若返回值为https://registry.npmjs.org/,可切换为国内稳定镜像:npm config set registry https://registry.npmmirror.com/
配置完成后重新执行npm i测试。 - 步骤2:校验npm代理配置
若此前配置过代理但当前环境代理失效,也会触发连接超时,先执行命令查看当前代理配置:npm config get proxynpm config get https-proxy
若当前网络不需要走代理,执行命令清除无效配置:npm config delete proxynpm config delete https-proxy
若确实需要使用代理,重新配置正确的代理地址:npm config set proxy http://<代理IP>:<代理端口>npm config set https-proxy http://<代理IP>:<代理端口> - 步骤3:排查本地网络限制
若处于公司内网环境,可确认是否存在防火墙、内网策略拦截npm请求,也可临时切换为手机热点网络重新执行安装,验证是否为当前网络环境导致的问题。 - 步骤4:清除缓存重试
若以上配置均正常,可执行命令清除npm缓存后重试:npm cache clean --force
删除项目根目录下的node_modules文件夹和package-lock.json文件后,再次执行npm i。
内容的提问来源于stack exchange,提问作者Pavithra Muthusamy
相关产品推荐
相关产品推荐

