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

新建React Native项目触发Metro Bundler报错:Unexpected token =

报错原因

该报错是Node版本与React Native依赖的metro-cache版本语法不兼容导致:

  • 你当前使用的Node v14.x版本默认未完全支持ES6+的类静态字段语法
  • 新版metro-cache的代码中使用了static HttpError = HttpError这类类静态字段写法,Node v14解析该语法时直接抛出异常
  • 你看到的app成功启动提示是因为流程分阶段执行,模拟器安装启动步骤先完成,后续Metro打包缓存阶段才触发报错
解决方法

你可以根据实际场景选择以下任意一种方案:

  • 方案1:升级Node版本(最推荐)
    将Node升级到v16.x及以上的LTS版本,该版本默认完整支持类静态字段语法。升级完成后删除项目下的node_modules文件夹、package-lock.json或yarn.lock文件,重新执行依赖安装命令后再启动项目即可。
  • 方案2:临时开启Node实验性语法支持
    运行启动命令时添加harmony参数开启类静态字段支持,命令如下:
    NODE_OPTIONS=--harmony-class-fields npx react-native run-ios
    
    也可以直接修改package.json中的scripts启动脚本,把参数内置进去,避免每次运行都手动输入。
  • 方案3:锁定兼容版本的metro-cache
    如果你暂时无法升级Node版本,可以在package.json中添加配置锁定支持Node v14的metro-cache版本:
    • 如果你使用npm v8及以上版本,添加如下配置:
    {
      "overrides": {
        "metro-cache": "0.72.3"
      }
    }
    
    • 如果你使用yarn,添加如下配置:
    {
      "resolutions": {
        "metro-cache": "0.72.3"
      }
    }
    
    配置完成后重新安装依赖,清理Metro缓存后启动项目即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:36:03