我可以在本地开发服务器上运行我的react应用程序(带有create-rect应用程序样板(,但当我使用npm run build
编译它,然后在服务器上运行它(我尝试了netlify和本地http服务器(时,我只会得到这个错误,页面不会加载:
classCallCheck.js:1 Uncaught RangeError: Maximum call stack size exceeded
at Object.a (classCallCheck.js:1)
at e (Object.js:6)
at e (Object.js:6)
at e (Object.js:6)
at e (Object.js:6)
at e (Object.js:6)
at e (Object.js:6)
at e (Object.js:6)
at e (Object.js:6)
at e (Object.js:6)
Object.js文件位于src/Model/Objects/Object.js.下
GitHub:https://github.com/Tracer1337/DynaSys
在Netlify上部署:https://youthful-mestorf-9e0ba8.netlify.com/
我做错了什么?
这是一个有趣的调试。看起来您已经创建了一个名为Object
的类,它是JavaScript中的一个受保护单词。
您可以通过单击错误右侧的源来找出问题的原因。这将打开导致错误的相应文件(默认情况下,create-react-app
提供源映射,因此即使在生产中调试也不是问题(。
我通过将Object
类重命名为InternalObject
解决了这个问题,现在即使在生产模式下,一切都运行良好!
至于为什么它能以受保护的名称在开发模式下工作,我一无所知。也许其他人有主意?
此处留作将来参考。我的React应用程序在生产构建中只在一个特定的屏幕上崩溃,但在开发环境中没有。
使用adb logcat *:E
,我设法追踪到一个错误的导入,很可能是由vscode的intelligense从错误的地方导入函数引起的。
我没有执行import { useState } from "react"
,而是从"react/cjs/react.development"
导入useState()
函数。有趣的是,来自错误文件的useState()
实际上在开发构建中运行得很好(文件名可能是原因的提示(。