我正在将使用CRA创建的大型应用程序迁移到Vite.js
我按照this guide使用现有应用程序配置了新的bundler,现在在运行开发服务器时一切似乎都很好。
然而,当尝试编译生产构建时,我在以下错误中运行:
vite v2.6.14 building for production...
✓ 162 modules transformed.
[vite:react-jsx] unknown: Maximum call stack size exceeded
file: /Users/matteocarpi/Documents/Web/philip-morris/aws-amplify-multi-tenant/node_modules/react-i18next/dist/es/Trans.js
error during build:
RangeError: unknown: Maximum call stack size exceeded
at getJSXProps (/Users/matteocarpi/Documents/Web/aws-amplify-multi-tenant/node_modules/vite-react-jsx/dist/cjs/babelRestoreJsx.js:79:29)
at getJSXNode (/Users/matteocarpi/Documents/Web/aws-amplify-multi-tenant/node_modules/vite-react-jsx/dist/cjs/babelRestoreJsx.js:31:23)
at PluginPass.CallExpression (/Users/matteocarpi/Documents/Web/aws-amplify-multi-tenant/node_modules/vite-react-jsx/dist/cjs/babelRestoreJsx.js:165:30)
at newFn (/Users/matteocarpi/Documents/Web/aws-amplify-multi-tenant/node_modules/@babel/traverse/lib/visitors.js:177:21)
at NodePath._call (/Users/matteocarpi/Documents/Web/aws-amplify-multi-tenant/node_modules/@babel/traverse/lib/path/context.js:53:20)
at NodePath.call (/Users/matteocarpi/Documents/Web/aws-amplify-multi-tenant/node_modules/@babel/traverse/lib/path/context.js:40:17)
at NodePath.visit (/Users/matteocarpi/Documents/Web/aws-amplify-multi-tenant/node_modules/@babel/traverse/lib/path/context.js:100:31)
at TraversalContext.visitQueue (/Users/matteocarpi/Documents/Web/aws-amplify-multi-tenant/node_modules/@babel/traverse/lib/context.js:103:16)
at TraversalContext.visitQueue (/Users/matteocarpi/Documents/Web/aws-amplify-multi-tenant/node_modules/@babel/traverse/lib/context.js:109:21)
at TraversalContext.visitQueue (/Users/matteocarpi/Documents/Web/aws-amplify-multi-tenant/node_modules/@babel/traverse/lib/context.js:109:21)
字符串
我知道这与Babel和i18next有关,但我有点陷入了具体的问题是什么。
关于如何进一步调试有什么提示吗?
先谢谢你,
中
2条答案
按热度按时间3yhwsihp1#
我只在开发中使用reactJsx插件解决了这个问题:
vite.config.js:
字符串
正如本期杂志所建议的
izkcnapc2#
.env已知问题
对于那些仍然面临这个问题的人来说,motdotla/dotenv-expand包(由Vite使用)有一个已知的问题,与
.env
文件中重复的变量名称有关。问题已打开以供邀请:https://github.com/vitejs/vite/issues/13399的
当一个变量引用另一个同名的变量时,就会发生错误,因此请检查
.env
文件是否有重复的名称。这个方法的作用是:
字符串
这打破了:
型