运行 生产构建时 React App 崩溃

React App crashes when running the production build

我可以 运行 我的 react-app(使用 create-react-app 样板)与本地开发服务器完美配合,但是当我使用 npm run build 编译它然后 运行 它与服务器(我试过 netlify 和本地 http-server),我只得到这个错误并且页面没有加载:

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 的 class,它在 JavaScript.

中是一个受保护的词

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

我通过将 Object class 重命名为 InternalObject 解决了这个问题,现在即使在生产模式下也一切正常!

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

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

使用 adb logcat *:E 我设法追踪到一个错误的导入,这很可能是由 vscode 的智能感知从错误的地方导入函数引起的。

我没有执行 import { useState } from "react",而是从 "react/cjs/react.development" 导入了 useState() 函数。有趣的是,来自错误文件的 useState() 实际上在开发版本中工作得很好(文件名可能暗示了原因)。