# 更新日志 ## [3.1.0] - 2023-XX-XX ### 新增 - **本地同步目标路径增强**: - `LocalSyncConfig.target` 现在支持字符串数组,可以将一个源路径同步到多个目标路径 - 添加了文件分发功能,一次配置可以将文件复制到多个目标 - 优化了目标路径配置验证,支持数组格式 - 更新了相关文档和示例 - **Git项目管理增强**: - 添加了 `GitProjectConfig.discardChanges` 选项,允许自动丢弃未提交的更改 - 当设置为 `true` 时,会在拉取前自动执行 `git checkout -- .` 和 `git clean -fd` - 增强了错误处理,可以处理因未提交更改导致的拉取失败 - 添加了相关日志,提供更清晰的操作过程 ### 改进 - 优化了本地同步功能的代码结构,将目标路径统一处理为数组 - 更新了 README 文档,添加了使用 target 数组的示例和 discardChanges 选项的说明 - 完善了类型定义,提供更好的 TypeScript 支持 - 改进了 Git 项目管理的错误处理,提供更友好的错误信息和恢复机制 ## [3.0.0] - 2023-XX-XX ### 重大变更 - **Git 项目存储路径统一化**: - 所有 Git 项目都集中存放在工作区根目录的 `.sync-git` 目录下 - `GitProjectConfig.targetDir` 现在相对于 `.sync-git` 目录,而非工作区根目录 - `AutoCommitConfig` 中的项目路径也相对于 `.sync-git` 目录 - 更新了相关路径计算逻辑和错误处理 - 提供更清晰的路径解析日志 - **智能自动提交完全分离**: - 完全移除了 `GitProjectAutoCommitConfig` 与 Git 项目配置的关联 - 将 `GitProjectAutoCommitConfig` 标记为废弃 - 自动提交模块现在完全依赖 `AutoCommitConfig` 配置 - **任务执行机制调整**: - 所有任务现在都在构建完成后的 `closeBundle` 钩子中执行 - 移除了 `buildStart` 和 `buildEnd` 阶段的分离执行 - 按固定顺序依次执行:Git项目管理 → 本地文件同步 → 自动提交 - 前一任务出错会中止后续任务执行 ### 新增 - **工作区根目录检测**: - 增强了工作区根目录检测功能,支持多种 monorepo 工具: - Turborepo (turbo.json) - PNPM Workspaces (pnpm-workspace.yaml) - Yarn/NPM Workspaces (package.json 中的 workspaces 字段) - 所有路径计算现在基于工作区根目录,而非 Vite 项目根目录 - 支持 monorepo 中的子项目使用相同配置 ### 改进 - **配置验证增强**: - 增加了对自动提交配置中路径的验证,确保使用相对路径 - 优化了错误消息,提供更具体的问题描述和解决建议 - 确保 Git 项目管理必须成功,失败时会中止后续任务 - **文档更新**: - 更新了 README,详细说明 Git 项目路径和工作区检测 - 添加了更多配置示例,突出显示路径关系 - 更新了配置表格,明确标注任务执行顺序 - 完善了工作原理部分,说明任务执行机制 ### 修复 - 修复了多个路径计算问题,确保路径解析一致性 - 修正了自动提交模块中潜在的路径解析错误 - 优化了 Git 项目管理错误处理逻辑 ## [2.1.0] - 2023-XX-XX ### 新增 - **工作区根目录检测**: - 自动检测Turborepo/PNPM/Yarn/NPM工作区根目录 - 所有路径(Git项目、文件同步、日志等)基于工作区根目录计算 - 支持monorepo中的多个子项目共享配置 ### 改进 - 更新了日志系统,路径计算现基于工作区根目录 - 改进了路径解析逻辑,支持绝对路径和相对路径 - 添加了工作区检测日志,方便调试和确认 ## [2.0.0] - 2023-XX-XX ### 重大变更 - **插件架构调整**:移除任务编排系统,改为基于Vite构建钩子的分阶段执行 - 移除了 `taskOrder` 配置字段 - Git项目管理现在在编译前阶段 (`buildStart`钩子) 执行 - 本地文件同步和自动提交在编译后阶段 (`buildEnd`钩子) 执行 - 修改了插件主要流程,不再需要手动指定任务顺序 - **智能自动提交模块独立化**: - 从 `GitProjectConfig` 中移除了 `autoCommit` 字段 - 创建了独立的 `AutoCommitConfig` 配置接口 - 更新了配置验证逻辑,适应新的数据结构 - 自动提交现在作为完全独立的模块运行 ### 新增 - 基于Vite构建周期的分阶段执行机制: - 更合理的任务执行顺序:Git项目更新 → 编译 → 文件同步 → 自动提交 - 更明确的错误处理策略:编译前错误会终止构建,编译后错误可选择忽略 - 为 `AutoCommitConfig` 添加了新的配置选项: - `enableSharedCommits`: 控制是否启用跨项目的共享提交信息 (默认: true) - `insertSeparator`: 控制是否在提交后插入分隔符 (默认: true) - 自动提交项目现可独立指定分支,与 Git 项目管理分支分离 ### 改进 - 代码结构更加清晰,各模块职责明确 - 更新了文档,清晰说明各任务的执行阶段 - 优化了配置验证逻辑,提供更友好的错误信息 - 改进了自动提交流程中的共享提交信息机制 - 更新了配置表格,添加了执行阶段说明 - 添加了工作流程图,帮助用户理解插件执行机制 ### 修复 - 修复了类型定义中的问题,确保类型安全 - 修正了一些可能导致异常的边缘情况 ## [1.2.0] - 2023-XX-XX ...之前的更新日志...