执行npm run dev遇SyntaxError: Unexpected token '?'错误,如何解决?
解决Next.js项目启动时的
SyntaxError: Unexpected token '?'错误 错误原因
这个报错是因为你的Node.js版本不支持ES2020引入的空值合并运算符(??),而你使用的Next.js版本依赖了这个语法特性。Next.js 12及以上版本要求Node.js版本至少为14.6.0,你的当前Node版本低于该要求,导致无法解析语法。
解决方案
方案1:升级Node.js(推荐)
这是最稳妥的解决方式,保证后续项目兼容性:
- 先检查当前Node版本:
node -v
- 如果版本低于14.6.0,使用nvm(Node版本管理器)升级:
- 安装nvm后,执行以下命令安装长期支持版:
nvm install lts/gallium nvm use lts/gallium- 没有nvm的话,也可以直接下载对应版本的Node.js安装包覆盖安装。
- 升级完成后,重新启动项目:
npm run dev
方案2:降级Next.js到兼容旧Node版本的版本
如果暂时无法升级Node,可以降级Next.js到支持旧版本Node的版本(比如Next.js 11.x,支持Node.js 12.x及以上):
npm uninstall next npm install next@11
安装完成后重新执行npm run dev即可。
内容的提问来源于stack exchange,提问作者Aksh
相关产品推荐
相关产品推荐

