在构建时临时禁用 Next.js 页面

Est*_*ask 5 javascript reactjs server-side-rendering next.js

Next.js项目中有几个页面存在SSR相关的问题,导致报错npm run build,导致项目无法构建:

pages/
  foo/
    bar/
      [id].jsx
      index.jsx
    index.jsx
  ...
Run Code Online (Sandbox Code Playgroud)

例如bar

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

export default function Bar() {...}
Run Code Online (Sandbox Code Playgroud)

作为快速修复,不构建bar/*.*页面并使路由不可用可能会很方便。

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

Kir*_*iya 5

您可以pageExtensionsnext.config.js.

// next.config.js
module.exports = {
  pageExtensions: ["page.js"],
}
Run Code Online (Sandbox Code Playgroud)

配置完成后,with *.page.js将在下面给定的目录结构中考虑唯一的页面。

pages/
??? user
?   ??? setting
?       ??? index.js
??? _app.page.js
??? _document.page.js
??? list.page.js
??? theme.ts
Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢,这看起来确实是一个正确的解决方案。我想我会将 pageExtensions 值移至环境变量以在现场使用它。 (2认同)