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

Next.js 13.4.4部署Vercel时预渲染报错:JSON输入意外结束

解决Vercel部署Next.js 13.4.4时的"SyntaxError: Unexpected end of JSON input"预渲染错误
  • 核对Vercel与本地的环境变量
    预渲染阶段若依赖环境变量发起请求,Vercel未配置或配置错误的变量会导致API返回空数据,触发JSON解析失败。确保所有本地用到的环境变量都已在Vercel项目「Settings > Environment Variables」中正确配置,且值无语法错误(比如JSON格式的变量需完整闭合)。

  • 排查middleware.ts的请求处理逻辑
    新增的middleware如果拦截了首页预渲染请求并返回不完整/异常响应(比如空JSON),会导致预渲染崩溃。检查middleware中针对/路径的处理规则,确保返回的响应符合Next.js预渲染要求,避免在预渲染流程中返回无效数据。

  • 强制清除Vercel构建缓存
    回滚旧版本仍报错大概率是缓存问题。在Vercel部署页点击「Redeploy」,取消勾选「Use existing Build Cache」,强制重新安装依赖并构建,排除缓存残留的异常数据。

  • 给Server Components的数据添加错误捕获
    首页(/app/page.tsx)作为Server Component,其数据获取逻辑(如fetch调用)在Vercel部署时可能因网络限制或API异常返回空响应。添加错误捕获和 fallback 数据:

    async function getPageData() {
      try {
        const res = await fetch(process.env.API_URL);
        if (!res.ok) throw new Error(`Request failed: ${res.status}`);
        return await res.json();
      } catch (err) {
        console.error('Fetch error:', err);
        return {}; // 提供空对象或默认数据避免预渲染失败
      }
    }
    
  • 统一Node.js版本
    本地与Vercel的Node.js版本差异可能导致JSON解析行为不一致。在项目根目录创建.nvmrc文件,指定与本地一致的版本(如v18.17.0),确保Vercel构建环境匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 07:37:25