Metro Builder: SyntaxError: Unexpected token = after upgrading to React Native 0.65.1

Metro Builder: SyntaxError: Unexpected token = after upgrading to React Native 0.65.1

今天I updated to React Native Version 0.65.1。 之后我无法启动 Metro Server

我现在在构建 Release .apk 时收到以下错误消息:

    node_modules/metro/src/Server.js:350
  processRequest = (req, res, next) => {
                 ^

SyntaxError: Unexpected token =
    at new Script (vm.js:80:7)
    at createScript (vm.js:274:10)
    at Object.runInThisContext (vm.js:326:10)
    at Module._compile (internal/modules/cjs/loader.js:664:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
    at Module.load (internal/modules/cjs/loader.js:600:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
    at Function.Module._load (internal/modules/cjs/loader.js:531:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
info Run CLI with --verbose flag for more details.

> Task :app:bundleReleaseJsAndAssets FAILED

我试过:

这是 Metro 服务器节点模块的片段

processRequest = (req, res, next) => {
    this._processRequest(req, res, next).catch(next);
  };

附加信息: 我正在使用装有 macOS Big Sur 11.5.2

的 MacBook Pro

谢谢大家

我在降级到 0.64 后使用了 React Native 0.66,这对我有用。

  1. 降级到 0.64.0
  2. 清除节点缓存 & gradle 清理
  3. npm 安装

我在 v0.66 上有一个新的 React Native 项目并且遇到了这个问题但是能够在不降级的情况下修复它。

所以,我使用 nvm 来管理我的节点版本,我目前使用的是 v16.13.0,应该没问题,但我似乎也通过 brew 安装了节点和纱线。 brew 中的节点版本是 v13.10.1.

解决这个问题:

  1. 从 brew 中卸载 node 和 yarn

brew uninstall yarn

brew uninstall node

  1. 通过npm全局重新安装yarn

npm install --global yarn

它有效,希望对其他人有所帮助

我也在用 React Native 最新版

"react": "17.0.2", "react-native": "0.66.2"

我系统中的问题是我使用的节点版本 node@10 并且仅使用 nvm 我使用默认节点版本 node@14,这对我有用。

nvm use 14

只是我的两分钱: 我有同样的问题。我的问题是由于 NVM。我为当前项目使用了节点版本 14,但我的默认版本是节点 10。地铁服务器在一个新终端中打开,该终端不使用当前节点,而是使用默认节点。通过将节点版本设置为 14 来修复它。

修复: nvm alias default v14.17.0

对于iOS只在“Build Phase”->“Bundle React Native code and images”下打开xcode修改NODE_BINARY到你的nvm设置的绝对路径。

export NODE_BINARY=node
...

使用以下方法查找 nvm 节点版本的当前绝对路径:

nvm use <your_version_here>
which node

我在使用 React 17 和 React Native 0.68 的新项目中遇到了同样的问题,我的修复是使用此命令更新 npm:

npm install -g npm@latest

并从 official page 更新 nodejs(只需下载并安装 LTS 版本)。