diff --git a/.gitignore b/.gitignore index ec54061..0888be6 100644 --- a/.gitignore +++ b/.gitignore @@ -51,6 +51,6 @@ vite.config.ts.* .history # 忽略 docs/src 中 sync-change-log.mjs 获得的 changelog 文件 -# apps/docs/src/renderer/CHANGELOG.md -# apps/docs/src/designer/CHANGELOG.md -# apps/docs/src/platform/CHANGELOG.md +apps/docs/src/renderer/CHANGELOG.md +apps/docs/src/designer/CHANGELOG.md +apps/docs/src/platform/CHANGELOG.md diff --git a/apps/docs/scripts/after-build.mjs b/apps/docs/scripts/after-build.mjs new file mode 100644 index 0000000..62f7fb8 --- /dev/null +++ b/apps/docs/scripts/after-build.mjs @@ -0,0 +1,58 @@ +#!/usr/bin/env node + +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +// 获取当前脚本的目录 +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +// 源目录和目标目录 +const sourceDir = path.resolve(__dirname, '../.vitepress/dist'); +const targetDir = path.resolve(process.cwd(), 'dist'); + +// 检查源目录是否存在 +if (!fs.existsSync(sourceDir)) { + console.error(`错误:源目录 "${sourceDir}" 不存在!`); + console.error('请确保已经运行了 vitepress build 命令'); + process.exit(1); +} + +// 如果目标目录已存在,则先删除 +if (fs.existsSync(targetDir)) { + console.log(`目标目录 "${targetDir}" 已存在,正在删除...`); + fs.rmSync(targetDir, { recursive: true, force: true }); +} + +// 递归复制目录函数 +function copyDirRecursive(src, dest) { + // 创建目标目录 + fs.mkdirSync(dest, { recursive: true }); + + // 读取源目录中的所有文件/目录 + const entries = fs.readdirSync(src, { withFileTypes: true }); + + for (const entry of entries) { + const srcPath = path.join(src, entry.name); + const destPath = path.join(dest, entry.name); + + // 根据文件类型进行不同处理 + if (entry.isDirectory()) { + // 递归复制子目录 + copyDirRecursive(srcPath, destPath); + } else { + // 复制文件 + fs.copyFileSync(srcPath, destPath); + } + } +} + +try { + // 复制目录 + copyDirRecursive(sourceDir, targetDir); + console.log(`✅ 成功将 ".vitepress/dist" 复制到 "${targetDir}"`); +} catch (error) { + console.error(`❌ 复制过程中发生错误:${error.message}`); + process.exit(1); +} diff --git a/apps/docs/scripts/before-build.mjs b/apps/docs/scripts/before-build.mjs deleted file mode 100644 index 28bdf4e..0000000 --- a/apps/docs/scripts/before-build.mjs +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env node - -import fs from 'node:fs'; -import path from 'node:path'; -import { fileURLToPath } from 'node:url'; - -// 获取当前脚本的目录 -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); - -// 需要处理的应用列表 -const appsToProcess = ['renderer', 'designer', 'platform']; - -// 复制CHANGELOG.md文件 -function copyChangelogFile(appName) { - const changelogSrcPath = path.resolve( - process.cwd(), - `../${appName}/CHANGELOG.md`, - ); - const changelogDestDir = path.resolve(__dirname, `../src/${appName}`); - const changelogDestPath = path.resolve(changelogDestDir, 'CHANGELOG.md'); - - console.log(`正在复制${appName}的CHANGELOG.md文件...`); - - // 检查源文件是否存在 - if (!fs.existsSync(changelogSrcPath)) { - console.warn( - `⚠️ 警告:${appName}的CHANGELOG文件 "${changelogSrcPath}" 不存在!`, - ); - return; - } - - // 确保目标目录存在 - if (!fs.existsSync(changelogDestDir)) { - console.log(`创建目标目录 "${changelogDestDir}"...`); - fs.mkdirSync(changelogDestDir, { recursive: true }); - } - - // 复制文件 - try { - fs.copyFileSync(changelogSrcPath, changelogDestPath); - console.log( - `✅ 成功将${appName}的CHANGELOG.md复制到 "${changelogDestPath}"`, - ); - } catch (error) { - console.error( - `❌ 复制${appName}的CHANGELOG.md时发生错误:${error.message}`, - ); - } -} - -try { - // 复制各个应用的CHANGELOG.md文件 - for (const app of appsToProcess) { - copyChangelogFile(app); - } - console.log(`✅ 所有CHANGELOG.md文件复制完成`); -} catch (error) { - console.error(`❌ 复制过程中发生错误:${error.message}`); - process.exit(1); -} diff --git a/apps/docs/scripts/sync-change-log.mjs b/apps/docs/scripts/sync-change-log.mjs index 62f7fb8..28bdf4e 100644 --- a/apps/docs/scripts/sync-change-log.mjs +++ b/apps/docs/scripts/sync-change-log.mjs @@ -8,50 +8,53 @@ import { fileURLToPath } from 'node:url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -// 源目录和目标目录 -const sourceDir = path.resolve(__dirname, '../.vitepress/dist'); -const targetDir = path.resolve(process.cwd(), 'dist'); +// 需要处理的应用列表 +const appsToProcess = ['renderer', 'designer', 'platform']; -// 检查源目录是否存在 -if (!fs.existsSync(sourceDir)) { - console.error(`错误:源目录 "${sourceDir}" 不存在!`); - console.error('请确保已经运行了 vitepress build 命令'); - process.exit(1); -} +// 复制CHANGELOG.md文件 +function copyChangelogFile(appName) { + const changelogSrcPath = path.resolve( + process.cwd(), + `../${appName}/CHANGELOG.md`, + ); + const changelogDestDir = path.resolve(__dirname, `../src/${appName}`); + const changelogDestPath = path.resolve(changelogDestDir, 'CHANGELOG.md'); -// 如果目标目录已存在,则先删除 -if (fs.existsSync(targetDir)) { - console.log(`目标目录 "${targetDir}" 已存在,正在删除...`); - fs.rmSync(targetDir, { recursive: true, force: true }); -} + console.log(`正在复制${appName}的CHANGELOG.md文件...`); -// 递归复制目录函数 -function copyDirRecursive(src, dest) { - // 创建目标目录 - fs.mkdirSync(dest, { recursive: true }); + // 检查源文件是否存在 + if (!fs.existsSync(changelogSrcPath)) { + console.warn( + `⚠️ 警告:${appName}的CHANGELOG文件 "${changelogSrcPath}" 不存在!`, + ); + return; + } - // 读取源目录中的所有文件/目录 - const entries = fs.readdirSync(src, { withFileTypes: true }); + // 确保目标目录存在 + if (!fs.existsSync(changelogDestDir)) { + console.log(`创建目标目录 "${changelogDestDir}"...`); + fs.mkdirSync(changelogDestDir, { recursive: true }); + } - for (const entry of entries) { - const srcPath = path.join(src, entry.name); - const destPath = path.join(dest, entry.name); - - // 根据文件类型进行不同处理 - if (entry.isDirectory()) { - // 递归复制子目录 - copyDirRecursive(srcPath, destPath); - } else { - // 复制文件 - fs.copyFileSync(srcPath, destPath); - } + // 复制文件 + try { + fs.copyFileSync(changelogSrcPath, changelogDestPath); + console.log( + `✅ 成功将${appName}的CHANGELOG.md复制到 "${changelogDestPath}"`, + ); + } catch (error) { + console.error( + `❌ 复制${appName}的CHANGELOG.md时发生错误:${error.message}`, + ); } } try { - // 复制目录 - copyDirRecursive(sourceDir, targetDir); - console.log(`✅ 成功将 ".vitepress/dist" 复制到 "${targetDir}"`); + // 复制各个应用的CHANGELOG.md文件 + for (const app of appsToProcess) { + copyChangelogFile(app); + } + console.log(`✅ 所有CHANGELOG.md文件复制完成`); } catch (error) { console.error(`❌ 复制过程中发生错误:${error.message}`); process.exit(1);