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

Next.js 13.2.4无法生成export文件夹及金丝雀版本报错求助

解决Next.js 13 App目录静态导出相关问题

核心场景说明

使用App Router目录结构,next.config.js已配置output: 'export',遇到以下问题:

  • 在next@^13.2.4版本执行next build,.next目录下不生成export文件夹
  • 切换到金丝雀版本后能生成export文件夹,但出现大量SyntaxError: Unexpected token u in JSON at position 0错误(项目未手动使用JSON.parse)
  • 执行已弃用的next export命令,抛出PageNotFoundError: Cannot find module for page:错误

针对性解决方案

1. 解决13.2.4版本不生成export文件夹的问题

该版本的App Router静态导出存在已知bug,可按以下方式处理:

  • 确保所有页面/组件符合静态导出要求:未使用getServerSideProps、headers()、cookies()等仅服务端可用的API
  • 检查next.config.js配置,确保output: 'export'处于顶层配置,示例:
    /** @type {import('next').NextConfig} */
    const nextConfig = {
      output: 'export',
      // 其他配置项
    }
    module.exports = nextConfig
    
  • 若允许,直接升级到Next.js 13.3+稳定版,官方已修复该版本的静态导出bug

2. 解决金丝雀版本的JSON语法错误

该错误多为框架内部处理客户端组件时的序列化问题,可尝试:

  • 精简"use client"使用范围:仅在需要客户端交互的组件上添加该指令,纯静态组件不要加,减少框架内部序列化操作
  • 检查客户端组件props:确保传递给客户端组件的props都是可JSON序列化的(避免传递函数、Symbol等不可序列化类型)
  • 升级到最新金丝雀版本:执行npm install next@canary升级,官方后续版本已修复部分此类内部序列化bug
  • 清理缓存后重建:删除缓存文件后重新构建,命令如下:
    rm -rf .next node_modules/.cache
    npm install
    next build
    

3. 关于next export弃用的问题

Next.js 13 App Router模式下,next export已被完全弃用,只需在next.config.js中配置output: 'export',直接执行next build即可完成静态导出,不要再执行next export命令。

总结

优先推荐升级到Next.js 13.3+稳定版,官方修复了大量App Router静态导出的bug;同时严格控制"use client"的使用场景,确保组件props可序列化,配合清理缓存重建,基本可解决上述所有问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:52:44