You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native启动报错ERR_OSSL_EVP_UNSUPPORTED求助

解决React Native启动时ERR_OSSL_EVP_UNSUPPORTED错误

针对你遇到的启动报错(Failed to construct transformer: Error: error:0308010C:digital envelope routines::unsupported),以下是经过验证的解决方法:

方法1:启动时添加OpenSSL兼容参数

该参数让Node.js使用旧版OpenSSL哈希算法,适配旧版Metro的缓存逻辑:

  • macOS/Linux:
    NODE_OPTIONS=--openssl-legacy-provider npm start
    
    若使用yarn:
    NODE_OPTIONS=--openssl-legacy-provider yarn start
    
  • Windows(PowerShell):
    $env:NODE_OPTIONS="--openssl-legacy-provider"; npm start
    
  • Windows(CMD):
    set NODE_OPTIONS=--openssl-legacy-provider && npm start
    

方法2:修改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和类Unix系统),先安装cross-env:

npm install cross-env --save-dev

再修改脚本:

"scripts": {
  "start": "cross-env NODE_OPTIONS=--openssl-legacy-provider react-native start",
  "android": "cross-env NODE_OPTIONS=--openssl-legacy-provider react-native run-android",
  "ios": "cross-env NODE_OPTIONS=--openssl-legacy-provider react-native run-ios"
}

方法3:清除Metro缓存

缓存损坏可能导致兼容问题,执行以下命令重置缓存:

npx react-native start --reset-cache

或手动删除缓存目录:

rm -rf node_modules/.cache/metro-cache

方法4:适配RN 0.64.2的Node版本

RN 0.64.2官方推荐Node.js 12.x~14.x,使用nvm管理版本更稳妥:

# 安装Node 14.18.0(该版本与RN 0.64.2兼容性最佳)
nvm install 14.18.0
# 切换到该版本
nvm use 14.18.0
# 重新安装依赖
rm -rf node_modules package-lock.json yarn.lock
npm install

内容的提问来源于stack exchange,提问作者Даниил Лазарев

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 23:55:03