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

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

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

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

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

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

【问题讨论】:

    标签: error-handling nextjs


    【解决方案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 的答案。对不起
    • 没问题 :) 仍然感谢您花时间提供帮助!
    猜你喜欢
    • 2016-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多