Mac环境执行npm run dev遇Unexpected token '?'错误求解决
解决Mac下
npm run dev报SyntaxError: Unexpected token '?'的问题 错误原因
这个错误是因为当前使用的Node.js版本过低,不支持ES2020引入的可选链操作符?.(错误信息里的?对应该语法)。Next.js新版本对Node.js版本有明确要求,比如Next.js 12及以上版本需要Node.js 14.6.0或更高版本。
解决步骤
- 检查当前Node.js版本:
node -v - 如果版本低于14.6.0,升级Node.js:
- 推荐用nvm管理版本(Mac环境首选):
- 安装nvm:通过Homebrew执行
brew install nvm,或手动完成本地安装 - 安装LTS长期支持版:
nvm install --lts - 切换到新安装的版本:
nvm use --lts - 设置为默认版本(避免下次重启终端失效):
nvm alias default --lts
- 安装nvm:通过Homebrew执行
- 手动安装(无包管理器时):
前往Node.js官方网站下载适配Mac的LTS版本安装包,运行安装程序完成升级。
- 推荐用nvm管理版本(Mac环境首选):
- 升级完成后再次执行
node -v确认版本符合要求 - (可选)清除npm缓存避免残留问题:
npm cache clean --force - 重新执行
npm run dev
额外注意
如果项目的package.json中存在engines字段,需确保本地Node.js版本与该字段指定的要求一致,例如:
"engines": { "node": ">=14.6.0" }
内容的提问来源于stack exchange,提问作者Hooy
相关产品推荐
相关产品推荐

