Next-JS V14.0.2 在部署时崩溃

Next-JS V14.0.2 crashes on deployment

提问人:Syre Musk 提问时间:11/16/2023 最后编辑:Syre Musk 更新时间:11/17/2023 访问量:65

问:

我是 NextJs 的新手,在部署我的 NextJs 应用程序时遇到问题。我有一个测试 NextJs 和 MongoDb 全栈应用程序,我编写它是为了更好地磨练我的技能,它在本地运行良好,但在我将其部署到 vercel 时崩溃并在浏览器控制台中返回两个错误。我已经搜索并搜索了解决方案,但仍然无法解决它,请我需要帮助。

这些错误是;

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'sqrt')
    at 155-6322358b00f50a64.js:5:13033
    at 155-6322358b00f50a64.js:5:13083
    at 54519 (155-6322358b00f50a64.js:5:13152)
    at l (webpack-dd3cd49180925084.js:1:152)
    at 44155 (155-6322358b00f50a64.js:1:14447)
    at l (webpack-dd3cd49180925084.js:1:152)
    at 18346 (676-ce2c77460caee114.js:1:36547)
    at l (webpack-dd3cd49180925084.js:1:152)
    at 15931 (page-9c9c707904a0c6d8.js:1:9713)
    at Function.l (webpack-dd3cd49180925084.js:1:152)

fd9d1056-614c4d273fc3bb18.js:1 Uncaught Error: Minified React error #423; visit https://reactjs.org/docs/error-decoder.html?invariant=423 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
    at iU (fd9d1056-614c4d273fc3bb18.js:1:117435)
    at o2 (fd9d1056-614c4d273fc3bb18.js:1:94370)
    at fd9d1056-614c4d273fc3bb18.js:1:94192
    at o1 (fd9d1056-614c4d273fc3bb18.js:1:94199)
    at oV (fd9d1056-614c4d273fc3bb18.js:1:91686)
    at oB (fd9d1056-614c4d273fc3bb18.js:1:91111)
    at MessagePort.C (472-f9c643575ba72596.js:1:101500)
iU  @   fd9d1056-614c4d273fc3bb18.js:1
o2  @   fd9d1056-614c4d273fc3bb18.js:1
(anonymous) @   fd9d1056-614c4d273fc3bb18.js:1
o1  @   fd9d1056-614c4d273fc3bb18.js:1
oV  @   fd9d1056-614c4d273fc3bb18.js:1
oB  @   fd9d1056-614c4d273fc3bb18.js:1
C   @   472-f9c643575ba72596.js:1

请告诉我,在解决此问题方面有任何帮助,我将不胜感激

ReactJS TypeScript MongoDB 下一个.js vercel

评论

1赞 Harrison 11/16/2023
无论调用什么,这意味着您必须首先检查它是否存在,我尝试搜索存储库,但 Git 正在做一些索引。最好共享代码,以显示调用了哪个对象,并确保从一开始就定义它sqrtundefinedsqrt
0赞 Syre Musk 11/16/2023
我没有直接在我的代码中使用任何地方,我怀疑它来自第三方库sqrt
0赞 Harrison 11/16/2023
嗯,有趣的是,在这种情况下,在运行或安装软件包时,控制台中的某个地方应该会有一些警告。我冒昧地猜测某些库已更新或安装,并且与其他库配合不好。您可以尝试删除目录(也可能是文件)并重新安装库,以查看安装时是否存在任何问题,然后查看哪些库导致了问题node_modules/package_lock.json

答:

0赞 Jahedul Hoque 11/16/2023 #1

几天前我也遇到了这个问题。

在开发模式下,您应该会在控制台上看到一些严重警告(红色)。在生产模式下,您看不到它。它们不会在开发中产生任何问题,即使您运行本地构建也是如此。但在生产中,它被视为错误。您需要在本地修复它们,并在修复所有此类警告后,再次部署它们。

具体来说,我可以看到您的应用程序中有两种类型的错误。

  1. TypeError:无法读取 undefined 的属性(读取“sqrt”): 在访问对象的任何属性之前,请确保对象不是未定义的。一种方法是使用类似 的运算符。?textObject?.property
  2. 未捕获的错误:缩小的 React 错误 #423;:这是水合作用错误。您应该在开发模式下看到此错误。

解决这些问题并重新部署。希望这应该有效。

评论

0赞 11/16/2023
在部署之前,我已经在本地解决了水化错误,但在生产模式下仍然出现错误
1赞 Syre Musk 11/17/2023 #2

我终于能够解决它;

我正在使用有问题的 crypto-js 库,我怀疑是库给了我,所以我寻找了一个替代库,然后在我的代码中有类似情况的任何地方也实现了这一点TypeError: Cannot read properties of undefined (reading 'sqrt')Be sure an object is not undefined before accessing any of it's properties.One way to do that is to use an ? operator like textObject?.property.

我还将 in 的值从 更改为moduleResolutiontsconfig.jsonbundlernode

然后我删除了文件夹,文件夹和文件并重新安装了我所有的软件包.nextnode_modulespackage-lock.json

1赞 gugugu 11/27/2023 #3

您的问题似乎与 Next.js 存储库上报告的问题相同。

将 Next.js 降级到版本 13 为我解决了这个问题。