一、问题
今天工作的时候,想给一个前端站点装一个轻量级http-server服务器,让它跑起来。然npm设置了淘宝镜像,在npm i安装包的时候,出现了如下错误:
npm ERR! code CERT_HAS_EXPIRED
npm ERR! errno CERT_HAS_EXPIRED
npm ERR! request to https://registry.npm.taobao.org/http-server failed, reason: certificate has expired
提示淘宝镜像证书过期了。
二、原因
如错误所说,淘宝的证书2024年1月22日过期了:
事实上早在2021年,淘宝就发文称,npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com。旧域名也将于 2022 年 5 月 31 日停止服务(不过,直到2024年1月22日SSL证书到期才真正不能用)。
三、解决办法
1.查看npm 镜像设置
输入配置列表命令,查看当前npm镜像设置。
npm config list
可见,registry设置还是原来的淘宝镜像。
2. 清空缓存
输入 npm cache clean –force 强行情况缓存。
> npm cache clean –force
3. 修改或删除镜像
按照淘宝的介绍,新的淘宝镜像地址为https://registry.npmmirror.com/,它的SSL证书信息如下:
可以把镜像指向新的站点:
npm config set registry https://registry.npmmirror.com
或删除镜像,即不设置registry:
npm config delete registry
又或者修改为npm本身,即:
npm config set registry https://registry.npmjs.org/
重新输入我要安装的包,问题解决。
npm i -g http-server
http-server服务器成功运行: