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

React Native 0.64升0.65.1构建报错Unexpected token =求助

React Native 0.64.1 升级 0.65.1 构建 Unexpected token = 报错解决方案

报错根因

报错指向metro/src/Server.js中的类公共字段语法processRequest = (req, res, next) => {},该语法为ES2022特性,Node 14.6以下版本默认不支持。你终端升级的Node 14.17未生效,是因为Android构建阶段调用的是系统环境/gradle内置的低版本Node,而非终端nvm等工具管理的Node版本。

排查&解决步骤

  • 第一步:确认构建阶段实际使用的Node版本
    在android/app/build.gradle文件顶部添加以下代码,重新执行构建,查看控制台输出的Node版本:
    exec {
        commandLine 'node', '-v'
        standardOutput = new ByteArrayOutputStream()
        doLast { println "构建使用的Node版本:${standardOutput.toString().trim()}" }
    }
    
  • 第二步:匹配对应的解决方案
    1. 若输出版本低于14.6:
      • 方案1:统一升级全局Node环境,包括Android Studio、CI/CD等构建场景使用的系统Node,确保所有环境Node版本都为14.17+
      • 方案2:不想改全局环境的,可在android/build.gradle中配置gradle-node插件,指定构建使用14.17.0版本Node,由gradle自动下载隔离使用
      • 临时方案:修改Node启动参数,在android/app/build.gradle中给bundleReleaseJsAndAssets任务添加启动参数:
        project.ext.react = [
            nodeExecutableAndArgs: ["node", "--harmony-public-fields", "--harmony-private-fields"]
        ]
        
    2. 若输出版本确实是14.17+:
      先删除package.json dependencies中废弃的旧依赖"babel-preset-react-native": "^4.0.1",再执行以下命令重置依赖:
      rm -rf node_modules package-lock.json yarn.lock
      npm install
      
      执行完后重新构建即可,该旧依赖和RN 0.65+使用的metro-react-native-babel-preset存在规则冲突,会导致语法转译异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:48:01