React Native编译报错:opensslErrorStack初始化错误(Node版本更新后)
解决Node.js更新后React Native的ERR_OSSL_EVP_UNSUPPORTED编译错误
临时单次生效方案
在启动项目的命令前添加兼容参数:
- Windows(命令提示符):
set NODE_OPTIONS=--openssl-legacy-provider && npm start - Windows(PowerShell):
$env:NODE_OPTIONS="--openssl-legacy-provider"; npm start - macOS/Linux:
NODE_OPTIONS=--openssl-legacy-provider npm start
全局永久生效方案
将兼容参数设置为系统环境变量:
- macOS/Linux:编辑当前Shell的配置文件(如
~/.bashrc或~/.zshrc),添加一行export NODE_OPTIONS=--openssl-legacy-provider,执行source ~/.bashrc(或对应配置文件)使设置生效 - Windows:打开「系统属性→高级→环境变量」,新建系统变量,变量名填
NODE_OPTIONS,变量值填--openssl-legacy-provider,重启终端后生效
项目级专属配置
修改项目根目录的package.json,更新启动脚本:
{ "scripts": { "start": "NODE_OPTIONS=--openssl-legacy-provider react-native start", "android": "NODE_OPTIONS=--openssl-legacy-provider react-native run-android", "ios": "NODE_OPTIONS=--openssl-legacy-provider react-native run-ios" } }
Windows命令提示符用户需调整脚本格式:set NODE_OPTIONS=--openssl-legacy-provider && react-native start
降级Node.js版本
若不想使用兼容模式,可降级到Node.js 16.x及以下版本(该错误源于Node.js 17+启用了新OpenSSL算法,旧项目依赖的加密逻辑不兼容)。通过nvm管理版本:
- 安装nvm后执行:
nvm install 16,再执行nvm use 16切换版本
内容的提问来源于stack exchange,提问作者maharsh
相关产品推荐
相关产品推荐

