window、node V18、vscode
错误描述
运行npm run dev的时候出现报错
(原本电脑的node版本为"14.16.0",搭建安装react-native的时候提示所需的版本为:"^12.22.0 || ^14.17.0 || >=16.0.0",干脆就更新到了18版本,rn时搭建成功了,原本电脑的项目就启动不成功了--)
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:71:19)
at Object.createHash (node:crypto:133:10)
at module.exports.__webpack_modules__.57442
...........
{
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
}
问题原因
主要是nodeJs V17版本发布了OpenSSL3.0对算法和密钥大小增加了更为严格的限制。
所以就是node版本太高不兼容导致运行失败
解决方法
在网上查找了一些解决方案
方法一: 在package.json的scripts的命令中添加SET NODE_OPTIONS=--openssl-legacy-provider
注意:如果团队中node版本不一致,不建议将该package.json提交。
方法二、在编译器的集成终端运行命令行:$env:NODE_OPTIONS="--openssl-legacy-provider",在运行npm run dev(临时解决方案)
方法三、降低node版本 下载安装包
按照需求选择安装包版本
https://npm.taobao.org/mirrors/node/v14.21.3/node-v14.21.3-x64.msi