42 lines
1.9 KiB
Markdown
42 lines
1.9 KiB
Markdown
# 本地开发环境
|
||
|
||
本地开发由开发机提供 Node.js 22.x 与 pnpm 10.25.0,项目不安装或修改 Node。Docker Compose 只管理 Redis;Web、API、Scheduler 和 Worker分别从源码启动,MySQL 5.7.42 与 RocketMQ 5.x 使用外部开发实例且默认关闭。
|
||
|
||
## 首次准备
|
||
|
||
```bash
|
||
node --version
|
||
pnpm --version
|
||
pnpm install --frozen-lockfile
|
||
docker compose -f deploy/compose/development.yml up -d
|
||
pnpm check:runtime
|
||
```
|
||
|
||
把 `deploy/env/development/*.env.example` 复制为同目录的 `*.env.local`。四份 local 文件被 Git 忽略:Web 只能含 `VITE_` 公开变量;API、Scheduler、Worker 按最小权限分别读取自己的配置,不共享一份全能 env。
|
||
|
||
固定开发 MySQL 只允许 `a_share_analysis_dev`,主机必须是回环地址或代码内白名单 `112.192.20.11`,服务端补丁版本固定为 MySQL 5.7.42,字符集为 `utf8mb4`、排序规则为 `utf8mb4_general_ci`、会话时区为 `+08:00`。Schema 工具和开发检查禁止连接、探测或读取生产库。
|
||
|
||
## 启动顺序
|
||
|
||
建议分别打开四个终端,依次运行:
|
||
|
||
```bash
|
||
pnpm --filter @a-share-analysis/server dev:api
|
||
pnpm --filter @a-share-analysis/server dev:scheduler
|
||
pnpm --filter @a-share-analysis/server dev:worker
|
||
pnpm --filter @a-share-analysis/web dev
|
||
```
|
||
|
||
API 健康端点是 `http://127.0.0.1:3000/api/v1/health`,Web 是 `http://127.0.0.1:5173/`。Scheduler 与 Worker 在 GOV-009 中保持 `ROCKETMQ_ENABLED=false`;没有经过验证的 Node RocketMQ 客户端时,启用配置会直接失败,不使用内存队列伪降级。
|
||
|
||
## 日常验证与停止
|
||
|
||
```bash
|
||
pnpm check:contracts
|
||
pnpm verify
|
||
pnpm verify:e2e
|
||
docker compose -f deploy/compose/development.yml down
|
||
```
|
||
|
||
Redis 只绑定 `127.0.0.1:6379`,数据写入仓库忽略的 `.local/redis/`。RocketMQ 由开发者独立维护 NameServer、Broker 与需要时的 Proxy;TCP 端口可达不等于生产消费链路通过,完整联调仍需验证 Topic 路由和实际生产/消费。
|