Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 运行生产版本时,React应用程序崩溃_Javascript_Node.js_Reactjs_Webpack_Netlify - Fatal编程技术网

Javascript 运行生产版本时,React应用程序崩溃

Javascript 运行生产版本时,React应用程序崩溃,javascript,node.js,reactjs,webpack,netlify,Javascript,Node.js,Reactjs,Webpack,Netlify,我可以在本地开发服务器上使用create react app样板文件运行我的react app,但当我使用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:

我可以在本地开发服务器上使用create react app样板文件运行我的react app,但当我使用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: 部署在Netlify上:


我做错了什么?

这是一个需要调试的有趣的问题。看起来您已经创建了一个名为Object的类,它在JavaScript中是一个受保护的单词

您可以通过单击错误右侧的源来找出问题的原因。这将打开导致错误的相应文件create react app默认提供源映射,因此即使在生产环境中调试也不是问题

我通过将对象类重命名为InternalObject解决了这个问题,现在即使在生产模式下,一切都运行良好


至于为什么它在开发模式下使用这个受保护的名称,我不知道。也许其他人有一个想法?

这是一个需要调试的有趣想法。看起来您已经创建了一个名为Object的类,它在JavaScript中是一个受保护的单词

您可以通过单击错误右侧的源来找出问题的原因。这将打开导致错误的相应文件create react app默认提供源映射,因此即使在生产环境中调试也不是问题

我通过将对象类重命名为InternalObject解决了这个问题,现在即使在生产模式下,一切都运行良好


至于为什么它在开发模式下使用这个受保护的名称,我不知道。也许其他人有想法?

将此留在此处供将来参考。我的React应用程序只在生产构建的一个特定屏幕上崩溃,但在开发环境中没有

使用adb logcat*:E,我成功地跟踪到一个错误的导入,很可能是由于vscode的intellisense从错误的位置导入函数引起的


我不是从react导入{useState},而是从react/cjs/react.development导入useState函数。有趣的是,错误文件中的useState实际上在开发构建中工作得很好。文件名可能暗示了原因。

将此保留在此处供将来参考。我的React应用程序只在生产构建的一个特定屏幕上崩溃,但在开发环境中没有

使用adb logcat*:E,我成功地跟踪到一个错误的导入,很可能是由于vscode的intellisense从错误的位置导入函数引起的


我不是从react导入{useState},而是从react/cjs/react.development导入useState函数。有趣的是,错误文件的useState实际上在开发构建中运行得很好。文件名可能暗示了原因。

在构建或尝试运行服务器时,您是否会遇到此错误?@ErnestoStifano在浏览器中运行构建时这通常是由深度递归引起的。您的应用程序正在加载并启动,但您的浏览器在发现一些代码调用太多函数而未停止后放弃。使用浏览器的探查器查看调用了哪些函数,和/或使用调试器设置断点并逐步执行调用,直到调用中断,以找出卡住的地方。@rickdenhaan这就是问题所在。我不知道如何调试它,因为这只发生在react应用程序构建时,而不是在dev模式=>npm startYour应用程序完全在debian中构建时。您是否在Windows中?在生成或尝试运行服务器时是否会出现此错误?@ErnestoStifano在浏览器中运行生成时这通常是由深度递归引起的。您的应用程序正在加载并启动,但您的浏览器在发现一些代码调用太多函数而未停止后放弃。使用浏览器的探查器查看调用了哪些函数,和/或使用调试器设置断点并逐步执行调用,直到调用中断,以找出卡住的地方。@rickdenhaan这就是问题所在。我不知道如何调试它,因为这只发生在react应用程序构建时,而不是在dev模式=>npm startYour应用程序完全在debian中构建时。你在Windows中吗?@omnidan也许开发模式没有使用严格的,不确定though@mqklin我在考虑这个问题,但这不应该导致无限循环和未捕获的RangeError:超出了最大调用堆栈大小error@omnidan也许开发模式没有使用严格的,不确定though@mqklin我在想,但这不应导致无限循环和未捕获的RangeError:超出最大调用堆栈大小错误