vue项目无法运行报错 error:0308010C:digital envelope routines::unsupported

文章目录

    • 问题
    • 原因
    • 解决方法
      • 方法一
      • 方法二

问题

运行vue项目,报错 error:0308010C:digital envelope routines::unsupported
vue项目无法运行报错 error:0308010C:digital envelope routines::unsupported_第1张图片

原因

网上查了一下,大体原因就是node版本不对,node版本太高
也有说我没有使用 Node JS 的 LTS(长期支持)版本。
我本地使用的是 Node 17.0.0,这确实不是 Node 的 LTS 版本。

解决方法

推荐使用第二种解决方法,要方便一点,不用切换node版本,也不用安装其他软件

方法一

切换node版本
可以用nvm来管理不同版本的node
nvm仓库
https://github.com/coreybutler/nvm-windows/releases
下载安装自己电脑对应的node版本即可
安装完成配置好环境变量输入以下命令就可以判断是否安装成功

nvm -v

在这里插入图片描述
然后就可以使用命令安装项目需要版本的node了
我项目需要的node版本较低所以我安装了12.22.12,大家根据需要自行安装即可

nvm install 12.22.12

安装完成后,运行如下命令查看是否安装成功

nvm list

此命令会把本地安装的node版本都显示出来
vue项目无法运行报错 error:0308010C:digital envelope routines::unsupported_第2张图片
可以看到我本地安装了3个版本的node,目前正在使用的版本是17.0.0
之后我们可以用以下命令切换node版本

nvm use 12.22.12

切换完成后我们可以查看当前的版本是否更改

node -v

在这里插入图片描述
此时我们的node版本已经更换完成,重新尝试运行项目
vue项目无法运行报错 error:0308010C:digital envelope routines::unsupported_第3张图片
项目成功运行,问题解决

方法二

先把环境设置为报错的环境node17.0.1
vue项目无法运行报错 error:0308010C:digital envelope routines::unsupported_第4张图片
尝试运行项目
毫无疑问报错了
vue项目无法运行报错 error:0308010C:digital envelope routines::unsupported_第5张图片
要通过不更换node版本的方法解决这个问题,我们就只需要在项目启动命令前面加上以下命令即可
具体位置就是在package.json中scripts下面

//linux & mac:
NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve
//windows:
set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve

在这里插入图片描述
这个命令就是在运行项目之前设置一个环境变量NODE_OPTIONS,它的值为–openssl-legacy-
provider,之后在运行后面的命令来启动项目

具体来说,NODE_OPTIONS是node提供的一个环境变量,可以用来设置一些node项目运行时的选项,在这个项目中这个选项的作用时告诉node使用旧版本的openssl程序

此时我们再去运行项目
没有任何报错,问题成功解决
vue项目无法运行报错 error:0308010C:digital envelope routines::unsupported_第6张图片
完结!

你可能感兴趣的:(VUE,vue.js,前端,javascript)