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

远程服务器Next.js生产构建仅报TypeError:类继承值未定义

Next.js 13.0.1生产环境Middleware保护页面请求<pagename>.json报错(undici TypeError)

问题场景

  • 远程服务器运行Next.js生产构建版本时,所有受Middleware保护的页面请求<pagename>.json抛出以下错误:
    Error [TypeError]: Class extends value undefined is not a constructor or null
        at ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/file.js (evalmachine.<anonymous>:5724:19)
        at __require (evalmachine.<anonymous>:14:50)
        at ../../node_modules/.pnpm/undici@5.11.0/node_modules/undici/lib/fetch/formdata.js (evalmachine.<anonymous>:5881:49)
        ...
        at requireFn (file:///opt/render/project/src/node_modules/next/dist/compiled/edge-runtime/index.js:1:7079)
    
  • 本地执行next build && next start时,相同请求返回200,完全正常
  • 当前环境:React 18.2.0,Next.js 13.0.1,pnpm

解决方案

1. 升级Next.js版本

Next.js 13.0.x早期版本与undici存在兼容性bug,边缘运行时对依赖的处理有问题。升级到13.1+版本可彻底修复:

pnpm add next@latest

2. 锁定undici兼容版本

若暂时无法升级Next.js,可通过pnpm的overrides强制指定兼容的undici版本(推荐5.20.0,已修复该继承错误):
在package.json中添加:

{
  "pnpm": {
    "overrides": {
      "undici": "5.20.0"
    }
  }
}

然后重新安装依赖:

pnpm install

3. 检查Middleware中的fetch逻辑

确认Middleware内的fetch请求未使用Node.js特定的File/FormData API,边缘环境需遵循Web标准实现,避免构造对象时的兼容性问题。

4. 清理服务器构建缓存

远程服务器可能残留旧缓存导致依赖加载异常,执行以下命令清理后重新构建:

rm -rf node_modules .next
pnpm install
pnpm run build

错误原因

该报错源于Next.js 13.0.1的边缘运行时依赖的undici@5.11.0存在bug:File类试图继承一个未定义的构造函数。本地环境因Node.js版本或缓存机制自动兼容,但远程服务器环境暴露了这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:55:23