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

部署Next.js至Google App Engine时遇SyntaxError: Unexpected token '?'错误求助

解决Next.js部署Google App Engine时的SyntaxError: Unexpected token '?'问题

问题根源

这个错误是因为部署环境的Node.js版本不支持ES2020的可选链操作符(?.)——你本地的Node.js版本足够新,所以本地构建没问题,但Google App Engine默认的Node版本可能低于Next.js要求的最低版本(Next.js 12及以上需要Node.js 14.6.0或更高)。

解决步骤

1. 明确指定Node.js版本

在项目根目录的package.json里添加engines字段,锁定符合要求的Node版本:

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

也可以直接写你本地正在用的版本,比如"node": "16.x"或者"node": "18.x"。

2. 配置App Engine的运行时

如果你的项目用了app.yaml配置文件,把runtime改成对应版本:

runtime: nodejs16

(根据你选的Node版本调整,比如nodejs18)

3. 清理依赖后重新部署

  • 删除本地的node_modules文件夹和package-lock.json(用yarn的话删yarn.lock)
  • 重新安装依赖:npm install(或yarn install)
  • 重新构建并部署:npm run build && gcloud app deploy

额外检查项

  • 确认你的Next.js版本和Node.js版本兼容,参考Next.js官方的版本要求
  • 确保部署时用的是正确的依赖安装命令,别跳过依赖编译步骤

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 16:30:43