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

Next.js静态导出部署Cloudflare失败,报Unexpected token '?'错误求助

解决Next.js部署Cloudflare时next build报SyntaxError: Unexpected token '?'的问题

核心原因

报错中的??是空值合并运算符,属于ES2020语法特性,仅Node.js 14.0.0及以上版本支持。Cloudflare构建环境默认使用的Node.js版本可能低于该要求,导致无法解析该语法。

具体解决步骤

  • 指定Node.js版本:在项目根目录创建.nvmrc文件,写入你本地开发时使用的Node.js版本(比如18或16,需≥14.0.0),Cloudflare构建时会自动读取该文件使用对应版本。
  • 通过package.json配置版本要求:在package.json中添加以下配置,强制构建环境使用符合要求的Node.js版本:
    "engines": {
      "node": ">=14.0.0"
    }
    
  • 匹配Next.js与Node.js版本:确认你的Next.js版本对应的Node.js要求——比如Next.js 12+需要Node.js 14.6+,Next.js 13+需要Node.js 16.8+,确保两者版本兼容。
  • 清理缓存重新构建:执行rm -rf node_modules .next,再运行npm install,之后重新执行next build && next export,避免缓存引发的版本冲突问题。

验证方式

在本地使用和Cloudflare指定的相同Node.js版本执行next build,如果能成功构建,说明版本问题已解决,部署到Cloudflare即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 18:31:07