You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

创建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

火山引擎 最新活动