npm报错:npm ERR! code CERT_HAS_EXPIRED

一、报错问题

提示证书过期、镜像过期

D:\WorkSpace\Vue\ruoyi-ui>npm install
npm ERR! code CERT_HAS_EXPIRED
npm ERR! errno CERT_HAS_EXPIRED
npm ERR! request to https://registry.npm.taobao.org/file-saver failed, reason: certificate has expired

npm ERR! A complete log of this run can be found in:
npm ERR!     D:\App\nodejs\node_cache\_logs\2025-01-16T06_11_29_998Z-debug.log

二、原因分析

错误提示已经告诉原因是淘宝镜像过期了!
其实,早在 2021 年,淘宝就发文称,npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com。旧域名也将于 2022 年 5 月 31 日停止服务。

三、解决方法

1、查看当前的npm镜像设置:npm config list

C:\Users\root>npm config list
; cli configs
metrics-registry = "https://registry.npm.taobao.org/"
scope = ""
user-agent = "npm/6.4.1 node/v8.12.0 win32 x64"

; userconfig C:\Users\root\.npmrc
cache = "D:\\App\\nodejs\\node_cache"
prefix = "D:\\App\\nodejs\\node_global"
registry = "https://registry.npm.taobao.org/"

; builtin config undefined

; node bin location = D:\App\nodejs\node.exe
; cwd = C:\Users\root
; HOME = C:\Users\root
; "npm config ls -l" to show all defaults.

2、清空缓存:npm cache clean --force

3、然后修改镜像即可:npm config set registry https://registry.npmmirror.com (或npm config delete registry)

C:\Users\root>npm config list
; cli configs
metrics-registry = "https://registry.npmmirror.com/"
scope = ""
user-agent = "npm/6.4.1 node/v8.12.0 win32 x64"

; userconfig C:\Users\root\.npmrc
cache = "D:\\App\\nodejs\\node_cache"
prefix = "D:\\App\\nodejs\\node_global"
registry = "https://registry.npmmirror.com/"

; builtin config undefined

; node bin location = D:\App\nodejs\node.exe
; cwd = C:\Users\root
; HOME = C:\Users\root
; "npm config ls -l" to show all defaults.

!!!注意:此处修改的镜像用的是npm本身,一般国内用户还是建议使用淘宝镜像,所以推荐还是设置成用淘宝镜像,执行:npm config set registry https://registry.npmmirror.com 【推荐】

4、再次运行: npm config list,查看 registry 已经被更改为默认的 npm 公共镜像地址。