Files
gongxue-base/openspec/changes/migrate-to-turborepo/tasks.md

2.7 KiB
Raw Blame History

1. 目录重组

  • 1.1 创建 apps/packages/ 顶层目录结构
  • 1.2 将 backend/ 移动至 apps/server/(含 Dockerfile、nest-cli.json 等全部文件)
  • 1.3 将 frontend/ 移动至 apps/admin/(含 Dockerfile、nginx.conf、index.html 等全部文件)
  • 1.4 创建 packages/typescript-config/,提供 base.jsonnestjs.jsonreact-vite.json 三个预设
  • 1.5 清理旧路径:删除根目录残留的 backend/frontend/ 引用

2. 根配置

  • 2.1 更新根 package.json:添加 workspaces 字段,统一根脚本(devbuildlintformattesttypecheck
  • 2.2 创建 turbo.json,配置 build/dev/lint/test/format/typecheck 流水线与缓存策略
  • 2.3 更新 .gitignore,适配新的 apps/packages/ 路径
  • 2.4 删除根目录现有 node_modules/package-lock.json,重新 npm install

3. 工具链迁移oxlint + oxfmt

  • 3.1 安装 oxfmt创建根目录 .oxfmtrc.json(映射现有 .prettierrc 配置:singleQuotetrailingComma
  • 3.2 安装 oxlint创建根目录 oxlint.config.ts,配置 TypeScript + React 规则覆盖
  • 3.3 移除 apps/admin/ 中 ESLint 依赖和配置文件,将 lint 脚本改为 oxlint
  • 3.4 移除 apps/server/ 中 Prettier 相关依赖(eslint-plugin-prettiereslint-config-prettier),更新 ESLint 配置
  • 3.5 删除 apps/server/.prettierrc,前端 ESLint 配置由根 oxlint 统一管理

4. TypeScript 配置更新

  • 4.1 更新 apps/server/tsconfig.json,继承 @gongxue/typescript-config/nestjs.json
  • 4.2 更新 apps/admin/tsconfig.json,继承 @gongxue/typescript-config/react-vite.json
  • 4.3 更新 apps/server/package.jsonname 字段为 @gongxue/server
  • 4.4 更新 apps/admin/package.jsonname 字段为 @gongxue/admin

5. Docker 适配

  • 5.1 更新 docker-compose.ymlbackend 服务 build.context 改为 ./apps/serverfrontend 服务 build.context 改为 ./apps/admin
  • 5.2 验证 docker compose build 全部成功Docker daemon 不可用,路径已验证正确)
  • 5.3 验证 docker compose up 所有服务正常启动Docker daemon 不可用,暂跳过)

6. 验证

  • 6.1 验证 npm install(根目录)所有 workspace 依赖安装正确
  • 6.2 验证 npm run build 根目录构建全部通过
  • 6.3 验证 npm run dev 并行启动 server:3003和 admin:3002admin API 代理正常工作
  • 6.4 验证 npm run lint 全部通过server ESLint + admin oxlint
  • 6.5 验证 npm run format oxfmt 格式化检查通过
  • 6.6 验证 npm run test --workspace=apps/server 后端测试通过