升级Next.js应用至React 18时遭遇Unexpected token语法错误
解决Next.js升级React18后build时的SyntaxError: Unexpected token '?'错误
错误原因
这个错误是因为你当前使用的Node.js版本不支持空值合并运算符(??)。适配React18的Next.js版本(通常为v12及以上)要求Node.js版本至少为14.6.0,而你的Node版本低于该要求,导致无法解析pageKeys.app ?? []这类语法。
解决方案
检查当前Node.js版本
执行命令查看当前版本:node -v确认版本是否≥14.6.0,若低于则需要升级。
升级Node.js版本
- 若使用
nvm(Node版本管理器),可直接安装并切换到稳定版:nvm install 18 # 安装18.x稳定版,也可选择更高的稳定版本 nvm use 18 - 未使用版本管理器的话,直接下载对应系统的Node.js最新稳定版安装包覆盖安装即可。
- 若使用
验证并重新构建
再次执行node -v确认版本符合要求后,重新运行构建命令:npm run build
额外排查步骤(若升级后仍有问题)
- 删除项目根目录下的
node_modules文件夹和package-lock.json文件 - 重新执行
npm install安装依赖 - 再次尝试
npm run build
内容的提问来源于stack exchange,提问作者Kostya Tresko
相关产品推荐
相关产品推荐

