无法在Next.js+Tauri项目中使用remark-gfm等MDX插件
解决方案
1. 关闭 experimental.mdxRs 实验特性
你的配置中启用了基于Rust实现的mdxRs编译器,但当前remark-gfm等部分插件尚未完全适配该实验特性。修改nextConfig:
/** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: true, swcMinify: true, pageExtensions: ['js', 'jsx', 'mdx', 'ts', 'tsx'], // 注释或移除mdxRs配置 // experimental: { // mdxRs: true, // }, };
2. 清理冗余依赖并简化配置
@next/mdx已内置MDX编译所需的核心依赖,你安装的remark-parse、remark-rehype等包属于冗余依赖,可卸载:
npm uninstall remark-parse remark-rehype rehype-stringify remark-mdx
保持MDX配置简洁:
import createMDX from '@next/mdx' import remarkGfm from 'remark-gfm' const withMDX = createMDX({ options: { remarkPlugins: [remarkGfm], rehypePlugins: [], }, }) const nextConfig = { reactStrictMode: true, swcMinify: true, pageExtensions: ['js', 'jsx', 'mdx', 'ts', 'tsx'], }; export default withMDX(nextConfig);
3. 验证GFM语法是否生效
创建测试MDX文件(如app/test.mdx),写入GFM特性代码:
### GFM测试 - [x] 完成任务1 - [ ] 待完成任务2 | 列1 | 列2 | |-----|-----| | 内容A | 内容B |
启动Next.js开发服务器访问/test,若任务列表、表格正常渲染,说明插件已生效。
4. 排除Tauri构建缓存问题
Tauri本身不会干扰Next.js的MDX编译逻辑,若单独运行Next.js正常、Tauri环境异常,可尝试:
- 删除
.next和src-tauri/target目录 - 重新执行
npm install - 重新启动Tauri开发服务
5. 确认MDX组件未覆盖默认渲染
你的mdx-components.tsx当前仅返回默认组件,若需自定义样式可扩展,但不要覆盖GFM相关的基础渲染组件:
import type { MDXComponents } from 'mdx/types' export function useMDXComponents(components: MDXComponents): MDXComponents { return { ...components, // 可在此添加自定义组件映射,比如表格样式 } }
内容的提问来源于stack exchange,提问作者Bismuth83
相关产品推荐
相关产品推荐

