MiraDocs 的 Vite 入口是:
import { miraDocs } from "@uichat-mira/docs/vite"基本接入#
miraDocs({
contentDir: "src/pages",
config: {
title: "UIChat Mira",
description: "本地优先的多模型智能体工作空间",
siteUrl,
},
exclude: (sourcePath) => /(^|\/)README\.md$/i.test(sourcePath),
route: (_sourcePath, doc) =>
doc.path.replace(/^\/docs(?=\/|$)/, "") || "/",
staticRoutes: miraDocsStaticBuild,
})内容发现#
插件递归读取 contentDir 下的 Markdown,依次执行:
读取文件
→ parseMiraDoc
→ exclude
→ route
→ normalize path
→ compareMiraDocs它生成 virtual:mira-docs/content:
import docs, { roots } from "virtual:mira-docs/content"插件监听内容目录,变化时失效虚拟模块并触发完整刷新。
当前旧站接入#
迁移前,App.tsx 使用 import.meta.glob 解析 Markdown,vite.config.ts 另有 virtual:page-directories。现在两套发现逻辑已经删除。
当前边界:
@uichat-mira/docs/vite
└── 发现、解析、排序、roots、热更新
src/content/mira-docs-adapter.ts
└── 作者、博客、合并页、旧导航模型
React 页面
└── 视觉、搜索、主题和交互静态构建#
staticRoutes 有三种形式:
false // 不生成静态路由
true // 使用默认静态构建
MiraDocsStaticBuildOptions // 自定义插件在 Vite writeBundle 阶段读取最终 manifest,并写入 build.outDir。
构建验证#
当前迁移 CI 运行:
pnpm install --frozen-lockfile
pnpm run verify:mira-docs
pnpm run build:github-pages
pnpm run verify:static-output这同时覆盖内容契约、类型、Vite、静态 HTML 和部署 base。