You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js 13中remark与rehype插件无法生效的问题求助

Next.js 13 App目录MDX插件不生效的解决步骤

1. 校验next.config.mjs配置正确性

App目录下的MDX配置必须通过@next/mdx的withMDX包装,确保插件被正确传入:

import nextMDX from '@next/mdx'
import remarkGfm from 'remark-gfm'
import rehypePrism from 'rehype-prism-plus'

const withMDX = nextMDX({
  extension: /\.mdx?$/,
  options: {
    remarkPlugins: [remarkGfm],
    rehypePlugins: [rehypePrism],
  },
})

const nextConfig = {
  pageExtensions: ['js', 'jsx', 'md', 'mdx'],
  experimental: {
    appDir: true,
  },
}

export default withMDX(nextConfig)

2. 确认依赖安装完整

确保以下依赖已安装(版本匹配你的Next.js版本):

npm install @next/mdx remark-gfm rehype-prism-plus prismjs

3. 引入代码高亮与表格样式

  • 代码块高亮:在根布局app/layout.js中导入Prism样式:
    import 'prismjs/themes/prism-tomorrow.css'
    
  • 表格样式:remarkGfm会将MD表格转为HTML<table>,需自定义CSS修复渲染异常:
    table {
      width: 100%;
      border-collapse: collapse;
      margin: 1.5rem 0;
    }
    th, td {
      border: 1px solid #e5e7eb;
      padding: 0.75rem;
      text-align: left;
    }
    th {
      background-color: #f3f4f6;
      font-weight: 600;
    }
    

4. 检查MDX内容格式与组件使用

  • 代码块必须指定语言标识,否则rehypePrism无法解析:
    ```javascript
    console.log('Hello Next.js')
    
  • App目录下直接导入MDX文件时,确保文件后缀为.mdx,且页面组件正确渲染:
    // app/posts/hello-world/page.js
    import PostContent from './hello-world.mdx'
    
    export default function PostPage() {
      return <PostContent />
    }
    

5. 升级Next.js到稳定版

若使用的是Next.js 13早期版本,MDX在App目录的支持存在bug,升级到13.4+版本可解决大部分兼容性问题:

npm install next@latest react@latest react-dom@latest

内容的提问来源于stack exchange,提问作者Silver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 05:22:19