toMedia
功能

工作区

Fumadocs MDX 多工作区/Monorepo 支持

工作区是一个独立的项目,拥有自己的配置和内容。工作区不需要单独的 package.json 文件,只需要一个配置文件。

配置

修改根目录的 source.config.ts

source.config.ts
import { defineConfig } from 'fumadocs-mdx/config';

export default defineConfig({
  workspaces: {
    'my-workspace': {
      dir: 'my-workspace',
      config: await import('./my-workspace/source.config.ts'),
    },
  },
});

关键特性

  • cwd 参数引用当前工作区目录
  • 配置保持独立,不会跨工作区继承
  • 运行 dev 或 build 服务器会从所有工作区生成集合条目

访问集合

工作区生成的文件位于 .source/{workspace}/*,通过以下方式访问:

import { docs } from 'collections/my-workspace/server';

使用 multiple() 函数集成多个源:

import { loader, multiple } from 'fumadocs-core/source';
import { docs } from 'collections/server';
import * as MyWorkspace from 'collections/my-workspace/server';

export const source = loader(
  multiple({
    root: docs.toFumadocsSource(),
    'my-workspace': MyWorkspace.docs.toFumadocsSource(),
  }),
  { baseUrl: '/docs' },
);

实际应用场景

此方式支持分布式文档架构,内容可以跨多个仓库分布,CI/CD 管道可通过中央文档中心触发统一部署。

On this page