【未解决】FetchError: request to https://registry.npm.taobao.org/ failed, reason:certificate has expired

错误描述

今天创建了一个使用Ant Design Pro 的项目,

引用Umi UI

yarn add @umijs/preset-ui -D

然后就是运行程序打开图标,试着理由umi插入页面,

但是报了如下错误,并且程序自动终止了

网上搜索之后都是说  因为淘宝镜像问题

试着解决

尝试一

所以我根据找到的资料在cmd都去尝试了一遍

首先是查看nvm、npm、yarn的信息

npm config list

发现淘宝镜像没有问题,同时我还特地重新配了一遍

npm cach

<think> 我们正在解决一个与npm包管理相关的FetchError问题。具体错误是:在尝试获取agent-base@4.2.0的元数据时,向https://registry.npm.taobao.org/agent-base发出的请求失败,原因是证书已过期。 用户之前可能遇到类似问题(如Docker拉取镜像时的网络问题)并通过设置代理解决。但当前问题不是网络连接问题,而是证书过期问题,因此解决方案不同。 分析: 1. 错误信息指出证书已过期,这意味着我们试图连接的服务器(registry.npm.taobao.org)的SSL证书已经超过了有效期。 2. 淘宝npm镜像(registry.npm.taobao.org)现在已经迁移到了npmmirror.com。官方公告(2022年)指出,旧的域名registry.npm.taobao.org已经停止维护,建议使用新域名。 解决方案: 步骤1:更新npm的镜像源为新的镜像源(https://registry.npmmirror.com) 我们可以通过npm命令修改镜像源: ```bash npm config set registry https://registry.npmmirror.com ``` 或者,也可以使用nrm(npm registry manager)来管理镜像源。 步骤2:如果不想永久更改镜像源,可以在安装包时临时指定镜像源: ```bash npm install agent-base@4.2.0 --registry=https://registry.npmmirror.com ``` 步骤3:清除npm缓存,以避免缓存中过期的证书信息影响: ```bash npm cache clean --force ``` 步骤4:如果问题仍然存在,可能是由于本地系统时间不正确导致证书验证失败(但错误信息是证书过期,所以更可能是镜像源的问题)。检查系统时间并校准。 步骤5:如果以上步骤无效,考虑暂时忽略SSL证书错误(不推荐,仅临时使用): ```bash npm config set strict-ssl false ``` 然后重新尝试安装。但请注意,这会有安全风险,安装完成后建议设置回`true`。 注意:如果用户使用的是cnpm(淘宝的npm客户端),需要更新cnpm的镜像设置,或者直接使用npm并设置新的镜像源。 由于用户之前的问题中提到了代理设置,如果用户处于需要代理的网络环境,可能需要同时配置npm的代理。但当前错误是证书过期,因此先尝试更换镜像源。 参考用户之前解决Docker问题的方法是通过设置代理,但这里证书过期与网络代理关系不大。不过,如果用户在使用代理,也要确保代理不会干扰SSL证书的验证。 综上所述,主要解决方案是更换npm镜像源到新的地址。 生成相关问题: 1. 如何永久更改npm的镜像源? 2. 如何临时使用其他镜像源安装npm包? 3. 为什么会出现SSL证书过期的错误? 4. 如何安全地忽略npm的SSL证书错误? 5. 如何更新系统的根证书? </think> ### 解决 npm 获取元数据时的证书过期错误 您遇到的 `FetchError` 源于以下原因: 1. `agent-base@4.2.0` 的元数据请求失败 2. 使用的淘宝镜像源 `https://registry.npm.taobao.org` 证书已过期 3. 客户端(npm/Yarn)拒绝连接不安全的 HTTPS 源 #### 解决方案(逐步操作) ##### 方法一:切换官方镜像源(推荐) ```bash # 永久切换至官方源 npm config set registry https://registry.npmjs.org # 临时使用官方源安装 npm install agent-base@4.2.0 --registry=https://registry.npmjs.org ``` > **优势**:官方源证书自动更新,无需额外配置 ##### 方法二:更新淘宝镜像源域名 ```bash # 使用淘宝新域名(npmmirror.com) npm config set registry https://registry.npmmirror.com # 验证配置 npm config get registry ``` > 🔍 注意:淘宝已于2022年迁移至新域名 `npmmirror.com`[^1] ##### 方法三:临时忽略证书验证(仅测试环境) ```bash # 运行前设置环境变量(不推荐生产环境) export NODE_TLS_REJECT_UNAUTHORIZED=0 npm install agent-base@4.2.0 ``` > ⚠️ **风险**:会降低连接安全性 ##### 方法四:清除缓存并重试 ```bash npm cache clean --force rm -rf node_modules package-lock.json npm install ``` #### 根本原因分析 1. **证书过期**:第三方镜像站未及时更新 SSL 证书 2. **镜像迁移**:淘宝 npm 已弃用 `taobao.org` 域名[^1] 3. **安全策略**:Node.js 18+ 默认启用严格证书校验 #### 预防措施 ```bash # 检查镜像源状态 curl -I https://registry.npmmirror.com # 更新根证书(Ubuntu示例) sudo apt update && sudo apt install ca-certificates ``` ---
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nobody.sir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值