原因:主要是nodejs17版本发布了OpenSSL3.0对算法和秘钥大小增加了更为严格的限制,npm升级导致了与OpenSSL不兼容导致的初始化失败,而我的电脑上的node.js是v18.16.0的,版本太高了。
先说我的配置:
win10系统
node.js v18.16.0
npm 9.5.1
vue 2.7.14
vue-cli 2.9.6
四种解决方法:
一、卸载并安装低版本的node.js。推荐node.js16
二、电脑添加新的系统变量。我使用的是这一种,理由:懒,不用再卸载安装node.js。
此电脑---右键---属性---高级系统设置---环境变量---系统变量---新建。变量名:NODE_OPTIONS,变量值:--openssl-legacy-provider,如下图。
三、cmd输入:set NODE_OPTIONS=--openssl-legacy-provider
经测试,可以使用,但必须用cmd启动vue项目才有效。如果用webstrom启动,还是会报错。
四、使用nvm,随时切换不同版本。
nvm是nodejs多版本管理工具,可以允许下载多个nodejs版本,随时切换版本。
1.安装之前,要先卸载nodejs。
卸载要卸载干净,要先搞清楚nodejs的安装目录,再卸载,要删除安装目录和环境变量。
nvm可以安装多个版本node.js,有些项目比较旧,相互兼容的情况下,最好更换node.js版本,而不是自己找最新的兼容,会很麻烦。
2.安装nvm
官网:Releases · coreybutler/nvm-windows · GitHub,需要加速器。
百度网盘:
链接: 百度网盘 请输入提取码 提取码: hesp
安装教程:
nvm安装详细教程(卸载旧的nodejs,安装nvm、node、npm、cnpm、yarn及环境变量配置)_nvm 安装-优快云博客
注意:
正确的node与nvm镜像
node_mirror:npm.taobao.org/mirrors/node/
npm_mirror:npm.taobao.org/mirrors/npm/
- npm install express -g 出现错误
npm ERR! code CERT_HAS_EXPIRED
npm ERR! errno CERT_HAS_EXPIRED
npm ERR! request to https://registry.npm.taobao.org/express failed, reason: certificate has expired
npm ERR! code CERT_HAS_EXPIRED:解决证书过期问题-优快云博客
3.安装成功
nvm ls ,表示当前已安装的node.js,加*表示当前正在使用的版本。
4.切换到要使用的node版本
命令:nvm use 版本号。
5.nvm常用命令
总结:
建议使用方法四:nvm,可以下载多个node.js版本,随时可以切换。