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

CRA迁移Vite.js+React生产构建触发Maximum call stack size exceeded错误如何排查

排查与解决步骤

  • 先升级@vitejs/plugin-react到适配vite 2.6.x的最新兼容版本:该版本对应的vite-react-jsx插件存在已知的递归解析JSX节点栈溢出bug,是该类报错的高发原因。
  • 在vite配置的react插件参数中,添加排除规则跳过处理react-i18next的预编译文件:
// vite.config.js
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [
    react({
      exclude: /node_modules\/react-i18next/
    })
  ]
})

react-i18next打包输出的ES版本文件已经完成了JSX转换,不需要vite插件二次处理,重复处理会触发递归循环。

  • 检查项目根目录的babel配置(.babelrc、babel.config.js等):删除多余的@babel/plugin-transform-react-jsx相关配置,Vite的react插件已经内置了JSX转换能力,重复配置会导致生产构建时双重处理触发栈溢出。
  • 临时验证可以修改vite配置的build参数,关闭生产环境JSX转换测试:
export default defineConfig({
  build: {
    jsx: 'preserve'
  }
})

如果修改后可以正常构建,即可100%确认是JSX转换插件冲突导致的问题。

  • 升级react-i18next到对应React版本兼容的最新稳定版:旧版本react-i18next的Trans组件输出的AST结构不规范,也会触发vite插件的解析异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:54:06