如何禁用 nuxt 默认错误重定向

Posted

技术标签:

【中文标题】如何禁用 nuxt 默认错误重定向【英文标题】:How do I disable nuxt default error redirection 【发布时间】:2020-04-05 03:15:30 【问题描述】:

使用 Vuetify 设置一个 nuxt 项目。其中一个页面使用client-only (no-s-s-r) 组件。在开发过程中,如果此组件出现错误,我会被重定向到默认错误页面,这会阻止我使用 Vue devtools 检查变量和组件。

我觉得它应该非常简单,但我找不到禁用这种自动重定向行为的方法。所以我想我的问题是?

【问题讨论】:

damirscorner.com/blog/posts/20200904-ErrorHandlingInNuxtjs.html 我不知道如何禁用重定向错误布局,虽然我猜很多人不想在生产环境中禁用它,他们只需要这个用于开发目的,我建议在 if 条件下添加此 process.env.NODE_ENV !== 'production' 以便仅在开发环境中禁用重定向 【参考方案1】:

我发现了一个带有 nuxt 插件的 hack:

./plugins/errors.js

export default function( app ) 
  app.nuxt.error = () => 

./nuxt.config.js

module.exports = 
  ...
  plugins: [
    "~/plugins/errors.js",
  ],

【讨论】:

请注意,这仍然使用错误布局,我找不到禁用它的方法【参考方案2】:

您不能从 nuxt 配置中禁用 <nuxt-error> 渲染。

另一种方法是按如下方式破解 nuxt 渲染:

1/ 打开文件./node_modules/@nuxt/vue-app/template/components/nuxt.js 2/ 转到render(h) 方法 3/ 删除错误条件以始终显示组件:

  render (h) 

    // HACK TO SKIP ERROR
    this.nuxt.err = false

    // if there is no error
    if (!this.nuxt.err) 
      // Directly return nuxt child
      return h('NuxtChild', 
        key: this.routerViewKey,
        props: this.$props
      )
    

    // ...
  

nb: 在每个 npmyarn 安装后,上述文件中的 hack 将被覆盖。

【讨论】:

不敢相信这不是可定制的......

以上是关于如何禁用 nuxt 默认错误重定向的主要内容,如果未能解决你的问题,请参考以下文章

Nuxt.js:如何重定向内部方法

防止 Nuxt 身份验证重定向到 400 状态

如何在 Nuxt Vue 应用程序中重定向

如何在 Nuxt 的 asyncData 中重定向

在 nuxt.js s-s-r 中,我使用 laravel sactum 创建了身份验证系统,我面临重定向错误

如何使用 Nuxt ServerMiddleware 和 Apollo GraphQL 处理 301 重定向