Files
doodle-store/docs/初始化说明.md
T
2026-10-12 15:22:27 +08:00

2.7 KiB

Doodle Store 初始化说明

初始化日期:2026-10-12。

工程边界

  • 新项目路径:/Users/joey-xd/sites/doodle/doodle-store。
  • 小程序继续在 /Users/joey-xd/sites/doodle/doodle-mini 独立维护,未搬移源码或更改其依赖。
  • 本项目采用 pnpm workspace;首期应用是 apps/server,后续加入 apps/admin 和 apps/web。
  • 内部共享包使用 workspace:*;跨项目使用有版本的 HTTPS API,不直接引用彼此源码。

已初始化的能力

  • 固定 Node.js 24.20.0、pnpm 11.24.0,使用单一锁文件。
  • NestJS 11 / TypeScript 5.9 服务端骨架;选择兼容版本,不直接追随依赖的最新主版本。
  • 严格类型检查、ESLint、Prettier 和按依赖顺序执行的构建脚本。
  • 可选 .env 加载、端口/监听地址校验、关闭信号处理。
  • GET /api/v1/health 进程存活检查及真实 HTTP 测试。
  • admin、web、Prisma、迁移脚本和部署目录的用途说明。

初始化验证

  • pnpm install --frozen-lockfile --offline:锁文件重复安装通过。
  • pnpm check:格式、代码规范、类型检查、构建与 5 项基础测试通过。
  • 使用已构建的 apps/server/dist/main.js 启动真实进程,本地请求 /api/v1/health 返回 HTTP 200 和预期响应;验证后关闭进程。
  • 已初始化独立本地 Git 仓库,尚未提交、配置远程仓库或推送。

未开发的内容

尚未实现登录/权限、用户资料、分类、题型、收藏、下载、推荐、管理业务、七牛、定时任务或私有绘图。未连接数据库、迁移数据、发布小程序或部署云服务器。

数据库选型讨论不等于最终变更指令;当前仅预留 Prisma 目录,不安装 ORM 或生成表结构。后续按确认后的数据库选型实施。

后续开发要求

  1. 按迁移方案先完成登录、题型读取、收藏/下载幂等事务的纵向样板,不一次生成所有业务模块。
  2. apps/server/prisma 作为数据库结构唯一来源,原用户/题型字符串 ID 必须保留。
  3. 公共契约不得包含私有实现;管理权限由服务端判断,浏览器不直接访问数据库。
  4. 小程序联调记录服务端与客户端版本,保留旧版本兼容期;不能假设同一时间升级所有用户。
  5. 新增共享包后,确保根目录构建/检查先处理依赖包,再处理使用它们的应用。
  6. CI 可使用 pnpm install --frozen-lockfile 和 pnpm check;当前未连接 CI 服务或创建远程仓库。

业务迁移范围与切换步骤以本项目的云服务端迁移方案为准;该文档已从 doodle-mini 移入本项目统一维护。本文件只描述初始化状态,不代表 S1 业务样板已完成。