问题描述:
运行、打包都正常的vue项目,在将nodejs升级到v20.14.0后,均报错了:
Error: error:0308010C:digital envelope routines::unsupported
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使用的openssl和旧版本不同,导致项目启动出错。最方便的方法是在启动命令中环境变量。
set NODE_OPTIONS=--openssl-legacy-provider
package.json中修改如下:
加上后,运行、和编译打包一次性通过。