Error: error:0308010C:digital envelope routines::unsupported问题的解决方案包括webstorm运行vue项目的解决方案

原因:主要是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,如下图。

Error: error:0308010C:digital envelope routines::unsupported问题的解决方案包括webstorm运行vue项目的解决方案_第1张图片

三、cmd输入:set NODE_OPTIONS=--openssl-legacy-provider

经测试,可以使用,但必须用cmd启动vue项目才有效。如果用webstrom启动,还是会报错。

四、webstorm运行vue项目时,修改package.json文件。

ctrl+f,搜索scripts。

"scripts": {
  "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
  "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
  "lint": "vue-cli-service lint"
}
如果“lint”同名,可以用&&连接。

经测试,websorm启动vue项目仍然不奏效。

综上,建议使用方法一和方法二。既可以用cmd启动vue项目,也可以用webstorm启动。

你可能感兴趣的:(vue,webstorm,npm,node.js,vue.js)