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

44 lines
2.7 KiB
Markdown

# 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 服务或创建远程仓库。
业务迁移范围与切换步骤以本项目的[云服务端迁移方案](./云服务端迁移方案.md)为准;该文档已从 `doodle-mini` 移入本项目统一维护。本文件只描述初始化状态,不代表 S1 业务样板已完成。