NextJS - 在开发模式下使用 _error.js

nextjs - use _error.js in dev mode

提问人:mokk 提问时间:4/11/2018 更新时间:12/14/2022 访问量:5617

问:

因此,我正在我的nextjs应用程序上创建一个自定义错误页面。 按照文档,我创建了一个包含我的视图的文件(在_error.jsReact)

我的问题是当我处于开发模式时,我的页面被完全忽略(即使它通过它的)。该函数似乎被忽略了,而是似乎正在使用其内部页面。_errorgetInitialPropsrendernextjserror-debug

如果我是对的,这就是这段代码从存储库中所说的(当前版本的第 84 行)

当我作为环境构建时,没问题,我的自定义错误页面被拾取。production

关于如何在开发模式下呈现我的自定义错误页面的任何想法?

错误处理 next.js

评论


答:

0赞 kalm42 2/23/2019 #1

将节点环境显式设置为生产环境。在下面的脚本中,在 dev 命令之前添加 .package.jsonNODE_ENV=production ...

只是我的一个猜测。

评论

0赞 mokk 3/26/2019
谢谢@kalm42,但我的问题基本上是如何在不将节点环境设置为生产环境的情况下解决这个问题(因为这可能会有其他影响)
2赞 kalm42 3/27/2019
啊......然后我会说添加一个带有回退到自定义错误页面 UI 的 ErrorBoundary。_error页面旨在确保最终用户看不到堆栈跟踪。
0赞 cJayy 3/25/2019 #2

为了更方便地进行调试,您可以在以下位置创建新脚本:package.json

...

  "scripts": {
     "dev": "next",
     "build": "next build",
     "start": "NODE_ENV=production next start",
     "prod": "npm run build; npm run start", // combine build and start in order to have easier debugging
  }

...

评论

0赞 mokk 3/26/2019
对不起,cJayy,但这听起来与我的问题无关
0赞 cJayy 3/27/2019
我的错。我在没有正确理解问题的情况下扩展了 kalm42 的答案。不好意思
0赞 mokk 3/27/2019
没问题:)仍然感谢您抽出宝贵时间提供帮助!
0赞 Sargis Abovyan 7/22/2022 #3

这就是它在 Next JS 端的组织方式,自定义错误页面仅在生产中工作,据我了解,这是故意在 d 上显示错误

0赞 viam0Zah 12/14/2022 #4

不幸的是,这就是Next.js的设计方式。在他们的文档中的“自定义错误页面”部分下明确提到了它。

pages/_error.js仅用于生产。在开发过程中,你会得到一个调用堆栈错误,以了解错误的来源。

还有一个关于能够在开发中呈现页面的开放功能请求_error