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

React Native 0.61.4项目编译故障:Metro启动后无法构建应用求助

解决React Native 0.61.4 + Node.js 20.x的ERR_OSSL_EVP_UNSUPPORTED及构建触发问题

问题分析

你的核心矛盾是老版本React Native(0.61.4)与高版本Node.js(20.6.0)的兼容性冲突:Node.js 17+默认启用了新的OpenSSL哈希算法,而RN0.61.4配套的Metro版本不支持该算法,导致编译报错。虽然添加--openssl-legacy-provider能启动Metro,但构建命令未继承该Node参数,所以无法触发应用构建。

解决方案

方案1:为所有构建命令添加Node参数

将package.json里的所有scripts命令都加上NODE_OPTIONS=--openssl-legacy-provider,确保构建过程也使用旧版OpenSSL兼容模式:

{
  "scripts": {
    "start": "set NODE_OPTIONS=--openssl-legacy-provider && react-native start",
    "android": "set NODE_OPTIONS=--openssl-legacy-provider && react-native run-android",
    "ios": "set NODE_OPTIONS=--openssl-legacy-provider && react-native run-ios",
    "test": "jest"
  }
}

操作步骤:

  • 修改package.json后保存
  • 关闭所有已打开的终端窗口
  • 重新打开终端,执行npm start启动Metro
  • 另开一个终端,执行npm run android或npm run ios触发构建

方案2:降级Node.js到兼容版本(更稳定)

React Native 0.61.4官方推荐的Node.js版本为12.x~14.x LTS,用版本管理器切换到兼容版本能彻底解决这类兼容性问题:

  1. 安装nvm-windows(Windows系统)或nvm(Mac/Linux)来管理Node版本
  2. 执行命令安装兼容版本:
    nvm install 14.21.3  # 14.x LTS的最新稳定版
    
  3. 切换到该版本:
    nvm use 14.21.3
    
  4. 清理旧依赖并重新安装:
    # Windows系统执行
    del /s /q node_modules && del package-lock.json
    # Mac/Linux系统执行
    rm -rf node_modules package-lock.json
    npm install
    
  5. 正常启动项目:npm start,再执行构建命令

验证要点

  • 确保所有终端都使用了带有NODE_OPTIONS的命令,或已切换到兼容的Node版本
  • 启动Metro后,构建命令需在新终端执行,避免环境变量冲突

内容的提问来源于stack exchange,提问作者Fido el pepino

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:47:41