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

Posted

技术标签:

【中文标题】nextjs - 在开发模式下使用 _error.js【英文标题】:nextjs - use _error.js in dev mode 【发布时间】:2018-09-20 08:54:36 【问题描述】:

所以我正在我的 nextjs 应用程序上创建一个自定义错误页面。 根据文档,我创建了一个 _error.js 文件,其中包含我的视图(在 React 中)

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

如果我是对的,这就是这段代码所说的 from the repo(当前版本的第 84 行)

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

知道如何在开发模式下呈现我的自定义错误页面吗?

【问题讨论】:

【参考方案1】:

明确将您的节点环境设置为生产环境。在脚本下的package.json 中,在您的开发命令之前添加NODE_ENV=production ...

只是我的猜测。

【讨论】:

感谢@kalm42,但我的问题基本上是如何在不将节点环境设置为生产环境的情况下解决此问题(因为这可能会产生其他影响) 啊...然后我会说添加一个带有后备的 ErrorBoundary 到您的自定义错误页面 UI。 _error 页面旨在确保您的最终用户看不到堆栈跟踪。【参考方案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
  

...

【讨论】:

对不起 cJayy,但这听起来与我的问题完全无关 我的错。我在没有正确理解问题的情况下扩展了 kalm42 的答案。对不起 没问题 :) 仍然感谢您花时间提供帮助!

以上是关于nextjs - 在开发模式下使用 _error.js的主要内容,如果未能解决你的问题,请参考以下文章

NextJS 错误:构建项目时未定义组件道具(在开发模式下一切正常)

NextJS API |应用程序在部署和开发模式下工作,但在我运行下一次构建时却不行 |被拒绝

具有全局 CSS 导入的 NextJS 在生产模式下失败

在 dev = true 模式下运行时节点 NextJS 应用程序重新编译

NextJS / vercel - 504 错误'FUNCTION_INVOCATION_TIMEOUT'

Nextjs 构建错误,详细日志没有显示