今天拉取老项目更新依赖,出现
urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fegg-logger%2Fdownload%2Fegg-logger-2.6.1.tgz: certificate has expired
类似报错。即使删除node_modules
重新安装,问题依然无法解决。
一、问题演示
二、原因分析
1、淘宝镜像源地址变更,详见公告淘宝 NPM 镜像站喊你切换新域名啦
2、旧镜像源地址 SSL 证书已于 2024.1.22 过期
3、项目 yarn.lock
文件显示,大量安装包依赖旧镜像源
4、包管理器开启了严格检查(默认)
三、解决方案
1、对 lock 文件,使用新镜像地址替换旧镜像地址(推荐)
同时,Linux 中可使用 sed
指令进行替换
sed -i 's|https://registry.npm.taobao.org/|https://registry.npmmirror.com/|g' yarn.lock
2、删除 lock 文件,确保 npm、yarn 镜像源已设置新淘宝镜像源地址,重装依赖
# npm 切换新淘宝镜像源
npm config set registry https://registry.npmmirror.com# yarn 切换新淘宝镜像源
yarn config set registry https://registry.npmmirror.com
3、关闭严格检查(不推荐)
# npm 包管理工具
npm config set strict-ssl false# yarn 包管理工具
yarn config set strict-ssl false