创建Angular新项目时遭遇npm ERR! code ENOVERSIONS错误求助
解决Angular新项目创建时的
ENOVERSIONS(No valid versions available for timed-out)错误 我之前也碰到过类似的坑,这个错误本质上是npm在尝试拉取timed-out这个依赖包时,找不到任何可用的版本——大概率是npm源的缓存或者配置出了问题,和你升级npm到next版本关系不大。下面是我亲测有效的几个解决步骤,你可以一步步尝试:
1. 清理npm缓存并重置源
有时候npm本地缓存的包信息过期或者损坏,会导致找不到包版本。执行以下命令:
# 强制清理npm本地缓存 npm cache clean --force # 重置npm源为官方源(如果之前用了第三方源,可能存在同步延迟) npm set registry https://registry.npmjs.org/
如果访问官方源较慢,也可以切换到国内的镜像源试试:
npm set registry https://registry.npmmirror.com/
2. 升级/降级Angular CLI到稳定版本
旧版本的Angular CLI可能和新版npm存在兼容问题,或者依赖的timed-out版本在源中已被移除。你可以先全局安装最新稳定版的Angular CLI再创建项目:
# 全局安装最新稳定版Angular CLI npm install -g @angular/cli@latest # 重新创建项目 ng new training-app
如果还是不行,也可以尝试降级到一个稍旧的稳定版本(比如@angular/cli@16,根据当前官方稳定版调整)。
3. 检查并重置代理配置
如果你在有代理的环境下开发,代理设置可能干扰了npm拉取包的请求。可以检查并清空代理配置:
# 查看当前npm代理设置 npm config get proxy npm config get https-proxy # 如果存在代理配置,清空它们 npm config delete proxy npm config delete https-proxy
同时可以用curl https://registry.npmjs.org/timed-out测试网络是否能正常访问npm官方源的包信息。
4. 手动指定timed-out版本安装
如果项目已经创建完成,只是npm安装失败,你可以进入项目目录,手动安装一个稳定版本的timed-out,再执行完整的依赖安装:
cd training-app # 手动安装timed-out的稳定版本 npm install timed-out@4.0.1 # 执行完整依赖安装 npm install
这个版本是timed-out的一个长期稳定版,基本能解决找不到版本的问题。
5. 重置npm配置到默认状态
如果上面的步骤都无效,可能是你的npm配置存在其他异常,可以重置到默认配置:
npm config delete userconfig npm config delete globalconfig
之后重新安装全局Angular CLI,再尝试创建项目。
内容的提问来源于stack exchange,提问作者M0ns1f




