Skip to content

pageExtensions

须知:Next.js 在解析页面路由中的页面时,默认使用以下扩展名的文件:.tsx.ts.jsx.js。您可以修改此设置以允许其他扩展名,如 Markdown (.md.mdx)。

js
const withMDX = require('@next/mdx')()

/** @type {import('next').NextConfig} */
const nextConfig = {
  pageExtensions: ['ts', 'tsx', 'mdx'],
  experimental: {
    mdxRs: true,
  },
}

module.exports = withMDX(nextConfig)

您可以扩展 Next.js 使用的默认页面扩展名 (.tsx.ts.jsx.js)。在 next.config.js 中,添加 pageExtensions 配置:

js
module.exports = {
  pageExtensions: ['mdx', 'md', 'jsx', 'js', 'tsx', 'ts'],
}

更改这些值将影响所有 Next.js 页面,包括以下页面:

例如,如果您将 .ts 页面扩展名重新配置为 .page.ts,则需要将 middleware.page.tsinstrumentation.page.ts_app.page.ts 等页面重命名。

pages 目录中包含非页面文件

您可以将测试文件或其他组件使用的文件与 pages 目录中的页面文件放在一起。在 next.config.js 中,添加 pageExtensions 配置:

js
module.exports = {
  pageExtensions: ['page.tsx', 'page.ts', 'page.jsx', 'page.js'],
}

然后,将您的页面文件重命名为包含 .page 的文件扩展名(例如,将 MyPage.tsx 重命名为 MyPage.page.tsx)。确保您重命名了所有 Next.js 页面,包括上面提到的文件。