新建React Native项目启动服务报@react-native-community/cli语法错误如何解决
错误根因
该SyntaxError: Unexpected token {报错的本质是当前运行项目的Node环境不支持ES2019引入的可选catch绑定语法,该语法允许catch语句后面省略参数括号直接写catch {},新版本@react-native-community/cli的内部代码已经使用了该语法,低于要求版本的Node解析代码时就会触发该报错。
解决方案
- 校验当前终端实际生效的Node版本,执行命令
node -v,必须保证版本 ≥ 10.16.0,低于该版本的Node完全不支持可选catch绑定语法。
注意:如果使用nvm、n等Node版本管理工具,需要确认当前项目目录绑定的Node版本、全局默认Node版本是否符合要求,不要以你本地曾升级过的Node版本为准,要以当前终端执行命令输出的版本号为准。
- 确认Node版本符合要求后,全量清理缓存重装依赖:
依次执行如下命令:
rm -rf node_modules package-lock.json yarn.lock npm cache clean --force npm install
- 如果上述操作未解决问题,可降级
@react-native-community/cli到兼容旧语法的版本,执行命令:npm install @react-native-community/cli@^8.0.0 --save-dev
该版本的cli未使用可选catch绑定语法,可兼容更低版本的Node环境。 - Windows环境用户可额外检查系统环境变量的Node路径顺序,确保高版本Node的路径优先级高于旧版本,调整后重启终端再运行项目。
内容的提问来源于stack exchange,提问作者Zach Babb
相关产品推荐
相关产品推荐

