Appearance
日常开发流程
典型工作流
text
1. 拉最新代码 → pnpm install
2. docker compose up -d(若 DB 未起)
3. 启动后端(Java 或 Python)
4. build 变更过的 shared 包
5. pnpm --filter web dev(或 desktop / mobile)
6. 改代码 → 浏览器/窗口热更新改不同模块时的注意点
改 contracts(OpenAPI / SQL)
- 先改
contracts/openapi/rbac-api.yaml或contracts/sql/schema.sql - 同步 Java Controller / Python router
- 同步
packages/shared/types与api-client - 再改前端页面
改 shared 包
| 包 | 构建命令 | 消费方 |
|---|---|---|
| types | pnpm --filter @xichen-full-stack/types build | api-client、auth、admin |
| auth | pnpm --filter @xichen-full-stack/auth build | admin |
| api-client | pnpm --filter @xichen-full-stack/api-client build | admin、mobile |
| admin | 源码直引,无需 build | web、desktop |
| components | pnpm --filter @xichen-full-stack/components build | web、desktop 模板组件 |
admin 包通过 Vite 源码引用,改完保存后 web/desktop dev 会自动热更新。
改后端
- Java:
packages/server-java,Maven 编译,端口 8080 - Python:
packages/server-python,改.env后重启 uvicorn
改前端应用
- Web:
packages/web/src/main.ts仅为薄入口,业务在@xichen-full-stack/admin - Desktop:同上,额外注意 Electron hash 路由
- Mobile:
packages/mobile,独立 uni-app 结构
Turbo 命令
bash
pnpm dev # 并行启动各包 dev(含所有子包,慎用)
pnpm build # 按依赖顺序构建(shared 先于 app)
pnpm lint # 全仓 lint单独启动某个包更安全:
bash
pnpm --filter web dev
pnpm --filter @xichen-full-stack/server-java devGit 提交建议
- 契约变更与实现变更放在同一 PR,便于 review
- 不要提交
.env(含数据库密码) - shared 包若改了 types,确保 api-client build 通过