问题描述
启动Vue项目时,突发报如下异常:
opensslErrorStack: [
'error:03000086:digital envelope routines::initialization error',
'error:0308010C:digital envelope routines::unsupported'
],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
原因分析:
nodejs V17 版本发布了 OpenSSL3.0 对算法和秘钥大小增加了更为严格的限制,nodeJs v17 之前版本没影响,但 V17 和之后版本会出现这个错误。
解决方案:
方法一:Vscode或者cmd命令行输入命令
$env:NODE_OPTIONS="--openssl-legacy-provider"
使电脑上的 node 版本能适应项目的版本。
然后再执行 npm run serve ,则能成功运行项目。
方法二:
找到package.json 文件,加上:set NODE_OPTIONS=–openssl-legacy-provider && 如下:
"dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --open",
方法三:
将NodeJS切换到17以下版本,再进行启动。