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

Next.js升级后出现ERR_REQUIRE_ESM与package.json错误该如何修复?

问题成因

你错误的配置操作是所有报错的核心来源:

  • Next.js 11 原生不支持项目根目录package.json配置"type": "module",该特性的完整支持是在Next.js 12及后续版本才落地的
  • 当你添加了"type": "module"后,Node.js会将项目内所有.js后缀的文件识别为ES模块,但Next.js 11的内部加载逻辑仍使用CommonJS的require()语法加载配置、编译产物,就会触发ERR_REQUIRE_ESM错误
  • 你第一次报错的本质就是已经存在的"type": "module"配置把CommonJS写法的next.config.js识别成了ES模块,后续你同时改配置后缀+保留"type": "module"的操作,进一步导致Next编译生成的.next目录下的产物也被识别为ES模块,触发二次报错
可直接生效的临时修复方案

按顺序执行以下操作即可:

  1. 打开根目录package.json,删除你添加的"type": "module"配置项
  2. 把所有你修改过后缀的文件改回原名:
    • 将next.config.cjs改回next.config.js
    • 将_document.cjs改回_document.js
  3. 清除缓存与旧依赖,重新安装启动:
# Windows系统可手动删除对应文件夹/文件,或用PowerShell的Remove-Item命令
rm -rf node_modules .next package-lock.json yarn.lock pnpm-lock.yaml
# 重新安装依赖
npm install
# 启动开发服务测试
npm run dev
关于兼容性的说明

你提到的"type": "module"配置语法本身是正确的,但不符合Next.js 11的运行要求。Next.js 11本身是对10版本的CommonJS写法做了向下兼容的,本次问题并非版本升级的兼容性缺陷,而是错误的配置触发了Node.js的模块规则冲突。如果你后续需要使用ES模块写法的配置,建议升级到Next.js 12.2+版本,该版本开始正式支持ES模块格式的next.config.js与项目级"type": "module"配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:48:04