// 把项目根的 markdown 同步进 site/docs/,由 npm 的 predev / prebuild 自动跑。 // // 为什么要拷而不是让 VitePress 直接指向项目根: // srcDir 指到 D:\DCDC 之后,那里的 .md 编译出的虚拟模块要 import 'vue/server-renderer', // 而 node_modules 在 site/ 下(是子目录不是父目录),Rollup 解析不到,构建直接失败。 // 拷进来是最省事且不污染硬件工程根目录的做法。 // // ⚠️ site/docs/ 下的文件是**生成物**,别在里面改内容 —— 改 D:\DCDC\需求文档.md。 import fs from 'node:fs' import path from 'node:path' import { fileURLToPath } from 'node:url' const here = path.dirname(fileURLToPath(import.meta.url)) const ROOT = path.resolve(here, '../..') const OUT = path.resolve(here, '../docs') /** [源文件, 站点内路径] */ const PAGES = [ ['需求文档.md', 'index.md'], ['固件开发计划.md', 'plan.md'] ] fs.mkdirSync(OUT, { recursive: true }) for (const [src, dst] of PAGES) { const from = path.join(ROOT, src) const to = path.join(OUT, dst) if (!fs.existsSync(from)) { console.error(`[sync-docs] 找不到源文件:${from}`) process.exit(1) } const body = fs.readFileSync(from, 'utf8') const prev = fs.existsSync(to) ? fs.readFileSync(to, 'utf8') : null if (prev === body) { console.log(`[sync-docs] 未变化 ${src}`) continue } fs.writeFileSync(to, body) console.log(`[sync-docs] 已同步 ${src} -> docs/${dst} (${body.length} 字符)`) }