【问题标题】:Temporary disable Next.js pages on build在构建时临时禁用 Next.js 页面
【发布时间】:2021-06-26 13:56:09
【问题描述】:

Next.js 项目中的几个页面存在 SSR 相关问题,导致npm run build 出现错误并阻止项目构建:

pages/
  foo/
    bar/
      [id].jsx
      index.jsx
    index.jsx
  ...

例如bar:

export function getStaticProps() {
  return someApiCallThatCurrentlyFails()
  ...
}

export default function Bar() {...}

作为一种快速解决方法,不构建 bar/*.* 页面并让路由不可用可能会很方便。

可以在 Next.js 构建中忽略页面而不实际更改或删除项目中的页面组件文件吗?

【问题讨论】:

    标签: javascript reactjs next.js server-side-rendering


    【解决方案1】:

    您可以在next.config.js中配置pageExtensions

    // next.config.js
    module.exports = {
      pageExtensions: ["page.js"],
    }
    

    配置后,只有页面with *.page.js 将被考虑在下面给定的目录结构中。

    pages/
    ├── user
    │   └── setting
    │       ├── index.js
    ├── _app.page.js
    ├── _document.page.js
    ├── list.page.js
    └── theme.ts
    

    自定义文件会忽略尚不支持的模式。您可以访问此处创建的PR,以及here 给出的解决方案。这是目前为止最满意的解决方案。

    【讨论】:

    • 谢谢,这看起来确实是一个合适的解决方案。我想我会将 pageExtensions 值移动到环境变量中以便在现场使用它。
    • @EstusFlask 在官方 repo 上有很多关于这个功能的请求。也许下一个 js 会在即将发布的版本中提供一些永久的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2020-08-10
    • 2021-09-10
    • 1970-01-01
    相关资源
    最近更新 更多