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

Monorepo架构React Native应用执行yarn start时遇哈希兼容错误

解决React Native Monorepo中yarn start的ERR_OSSL_EVP_UNSUPPORTED错误

这个错误是Node.js 17+版本默认启用OpenSSL 3.0的严格算法规则,而旧版Metro打包工具依赖的哈希算法不再被支持导致的,以下是几种解决方式:

临时快速解决(单次生效)

根据你的操作系统执行对应命令:

  • Mac/Linux:
    NODE_OPTIONS=--openssl-legacy-provider yarn start
    
  • Windows CMD:
    set NODE_OPTIONS=--openssl-legacy-provider && yarn start
    
  • Windows PowerShell:
    $env:NODE_OPTIONS="--openssl-legacy-provider"; yarn start
    

永久修改脚本(推荐)

修改项目根目录的package.json,给start命令添加环境变量:

"scripts": {
  "start": "NODE_OPTIONS=--openssl-legacy-provider react-native start"
}

如果需要跨系统兼容,先安装cross-env依赖:

yarn add cross-env -D

再修改脚本:

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

Monorepo环境下,确保在对应的React Native项目目录下修改package.json,或者使用workspace命令统一配置。

升级Metro依赖(长期方案)

升级Metro相关包到支持Node.js 17+的版本,从根源解决问题:

yarn upgrade metro metro-cache metro-react-native-babel-preset --latest

如果是Monorepo,指定目标项目执行:

yarn workspace [你的RN项目名称] upgrade metro metro-cache metro-react-native-babel-preset --latest

全局环境变量设置(不推荐)

不建议全局设置,会影响所有Node.js进程:

  • Mac/Linux:在~/.bashrc或~/.zshrc中添加:
    export NODE_OPTIONS=--openssl-legacy-provider
    
    执行source ~/.bashrc或source ~/.zshrc生效。
  • Windows:在系统环境变量中添加NODE_OPTIONS,值为--openssl-legacy-provider。

内容的提问来源于stack exchange,提问作者karthick

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:20:25