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

Vercel部署Next.js时next-sitemap报ERR_MODULE_NOT_FOUND错误

Vercel部署Next.js时next-sitemap报ERR_MODULE_NOT_FOUND错误修复方案

报错原因

高版本next-sitemap(4.x及以上)的ESM模块解析逻辑与Vercel构建环境、CommonJS格式配置存在兼容冲突,直接导致构建时找不到cli执行文件,叠加静态导出场景的执行顺序问题,最终sitemap生成功能失效。

修复步骤

  • 固定next-sitemap到无ESM兼容问题的稳定版本
    卸载当前存在兼容问题的版本,安装3.x分支最后一个稳定版,执行命令:
    npm uninstall next-sitemap && npm install next-sitemap@3.1.55 --save-dev
    该版本基于CommonJS规范打包,不会出现mjs模块加载失败的问题,同时完整支持静态导出场景下的sitemap、robots.txt自动生成。
  • 调整构建脚本执行顺序
    现有sitemap.config.js配置无需修改,其中outDir: './out'与next静态导出的默认输出路径完全匹配。
    修改package.json中的build脚本,保证next-sitemap在项目构建完成、静态导出执行前运行,避免拿不到路由数据:
    "build": "next build && next-sitemap sitemap.config.js && next export"
    
    若使用Next.js 13.4及以上版本,且已在next.config.js中配置output: 'export'开启静态导出,可直接省略next export命令,脚本简化为:
    "build": "next build && next-sitemap sitemap.config.js"
    
  • 清除Vercel构建缓存后重新部署
    进入Vercel对应项目的部署页面,选择重新部署,勾选清除构建缓存选项后发起部署,禁止复用旧缓存,避免残留的高版本next-sitemap文件再次触发报错。

高版本next-sitemap适配方案(可选)

如果需要使用4.x及以上版本的next-sitemap,需做两处调整:

  1. 将根目录下的sitemap.config.js重命名为sitemap.config.mjs,把配置改为ESM导出格式:
export default {
  siteUrl: 'https://example.com',
  generateRobotsTxt: true,
  sitemapSize: 7000,
  outDir: './out',
};
  1. 同步修改build脚本中的配置文件路径:
"build": "next build && next-sitemap sitemap.config.mjs && next export"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:57:16