簡體   English   中英

運行生產版本時 React App 崩潰

[英]React App crashes when running the production build

我可以在本地開發服務器上完美地運行我的 react-app(使用 create-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: https://github.com/Tracer1337/DynaSys
部署在 Netlify: https ://youthful-mestorf-9e0ba8.netlify.com/

我做錯了什么?

這是一個有趣的調試。 您似乎創建了一個名為Object的類,它是 JavaScript 中的受保護詞。

您可以通過單擊錯誤右側的源來找出導致問題的原因。 這將打開導致錯誤的相應文件( create-react-app默認提供源映射,因此即使在生產中調試也不是問題)。

我通過將Object類重命名為InternalObject解決了這個問題,現在即使在生產模式下也一切正常!

至於為什么它在具有該受保護名稱的開發模式下工作,我不知道。 也許其他人有想法?

留在這里以供將來參考。 我的 React 應用程序只在生產版本的一個特定屏幕上崩潰,但在開發環境中沒有。

使用adb logcat *:E我設法將其追蹤到一個錯誤的導入,很可能是由於 vscode 的智能感知從錯誤的地方導入了一個函數。

我沒有import { useState } from "react"執行import { useState } from "react"而是從"react/cjs/react.development"導入useState()函數。 有趣的是,錯誤文件中的useState()在開發版本中實際上工作得很好(文件名可能暗示了原因)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM