You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Next.js脚本时出现SyntaxError: Unexpected token ?问题求助

解决Next.js运行npm run dev时报Unexpected token ?的问题

以下是针对该问题的排查和解决步骤:

  • 确认当前终端使用的Node版本是否正确
    运行 node -v 确保输出为18.12.1,同时检查终端的Node路径(Linux/macOS用 which node,Windows用 where node),避免出现多版本冲突(比如nvm管理的版本、全局与项目本地版本不一致)。

  • 清理依赖缓存并重新安装
    执行以下命令彻底重置依赖,旧缓存可能导致安装了不兼容的依赖包:

    npm cache clean --force
    rm -rf node_modules package-lock.json # Windows环境替换为:del /s /q node_modules && del package-lock.json
    npm install
    
  • 检查并升级Next.js版本
    查看项目package.json中的next版本,旧版Next.js可能与Node 18存在兼容性问题,升级到最新稳定版:

    npm install next@latest
    
  • 检查项目engines字段配置
    如果package.json里有engines字段,确认指定的Node版本不低于14(空值合并运算符从Node 14开始支持),示例配置:

    "engines": {
      "node": ">=18.12.1"
    }
    

    若指定了更低版本,可能触发依赖安装时的兼容逻辑错误。

  • 排查全局Next.js冲突
    如果全局安装了旧版Next.js,可能与项目本地版本冲突,先卸载全局版本:

    npm uninstall -g next
    

    之后通过项目本地脚本运行开发服务。

  • 检查自定义Babel配置(若存在)
    若项目有.babelrc或babel.config.js自定义配置,确认@babel/preset-env的targets.node设置为当前Node版本或"current",避免Babel将代码转译为不支持??运算符的旧语法:

    {
      "presets": [
        ["next/babel", {
          "preset-env": {
            "targets": {
              "node": "18.12.1"
            }
          }
        }]
      ]
    }
    

内容的提问来源于stack exchange,提问作者Miles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:18:15