npm run dev 运行vue项目后出现 Error: error:0308010C:digital envelope routines::unsupported (亲测有效)

npm run dev 运行vue项目后出现 Error: error:0308010C:digital envelope routines::unsupported (亲测有效)

01.问题

1.vue项目在终端输入指令npm run dev后,vue项目无法跑起来,控制台还出现一堆错误,如下图所示

报错信息

2.该项目npm 版本为6.14.10、node 版本为v17.6.0

02.问题分析

1.这个错误一般是 OpenSSL 加密和解密数据时出现了不受支持的加密算法
2.更新 caniuse-lite 数据库或者升级 OpenSSL 版本(不建议)

运行以下命令以更新 caniuse-lite 数据库:

npx browserslist@latest --update-db

升级 OpenSSL 版本,可以参考以下步骤升级 OpenSSL:

下载 OpenSSL for Windows 安装包 https://slproweb.com/products/Win32OpenSSL.html

安装 OpenSSL for Windows

打开命令提示符或 PowerShell,并使用以下命令设置环境变量:

set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg
set PATH=C:\OpenSSL-Win32\bin;%PATH%
其中 C:\OpenSSL-Win32 是安装 OpenSSL for Windows 的路径。

3.将node版本降到16以下(不建议,因为npm 版本也受node版本影响,升级node版本后可能会导致npm版本不兼容从而出现某些依赖项无法安装)

03.解决方案

1. 通过命令设置NODE_OPTIONS参数,在当前vue项目终端输入即可(但在每次运行项目前都需要执行一次命令)

windows系统:

set NODE_OPTIONS=–openssl-legacy-provider

linux或mac系统:

export NODE_OPTIONS=–openssl-legacy-provider

2. 修改package.json,在运行指令配置项中加入set NODE_OPTIONS=–openssl-legacy-provider (解决1的缺点)
set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve 

配置环境的运行指令,如下图所示
运行指令

猜你喜欢

转载自blog.csdn.net/mrliucx/article/details/130152210