问题
在运行yarn serve或者npm run serve的时候出现报错Error: error:0308010C:digital envelope routines::unsupported,具体报错信息如下:
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:69:19)
at Object.createHash (node:crypto:133:10)
at module.exports
at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
}
Node.js v18.18.2
error Command failed with exit code 1.
原因分析
在使用node.js运行旧代码的时候,因为openssl在新版本中使用新的加密算法或安全策略,而引发ERR_OSSL_EVP_UNSUPPORTED的兼容性问题。
解决方法
配置node环境变量即可
export NODE_OPTIONS=--openssl-legacy-provider