执行npx react-native init报错:SyntaxError: Unexpected token '?'
问题原因
你遇到的SyntaxError: Unexpected token '?'错误,核心原因是Node.js 12.22.9版本不支持ES2020的空值合并运算符(??),而当前React Native CLI依赖的代码使用了该语法,导致执行失败。
解决方案
1. 卸载旧版本Node.js和npm
先移除通过apt安装的过时版本:
sudo apt remove --purge nodejs npm sudo apt autoremove sudo rm -rf /usr/local/lib/node_modules
2. 安装nvm(Node版本管理器)
nvm能方便管理多个Node.js版本,执行以下命令安装:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
安装完成后,重启终端或执行:
source ~/.bashrc
验证nvm安装成功:
nvm --version
3. 安装兼容的Node.js LTS版本
React Native推荐使用LTS版本(如18.x或20.x),这里以18.x为例:
nvm install 18 nvm use 18
设置为默认版本:
nvm alias default 18
4. 验证版本并重新初始化项目
检查版本是否正确:
node --version # 应显示v18.x.x npm --version # 对应配套npm版本
重新执行项目创建命令:
npx react-native init myApp
内容的提问来源于stack exchange,提问作者tfk
相关产品推荐
相关产品推荐

