2.0 KiB
本地开发环境
本地开发由开发机提供 Node.js 22.x 与 pnpm 10.25.0,项目不安装或修改 Node。Docker Compose 只管理 Redis;Web、API、Scheduler 和 Worker分别从源码启动,MySQL 5.7 与 RocketMQ 5.x 使用外部开发实例且默认关闭。
首次准备
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.x,字符集为 utf8mb4、排序规则为 utf8mb4_general_ci、会话时区为 +08:00。Schema 工具和开发检查禁止连接、探测或读取生产库。
启动顺序
建议分别打开四个终端,依次运行:
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 客户端时,启用配置会直接失败,不使用内存队列伪降级。
日常验证与停止
pnpm check:contracts
pnpm verify
pnpm --filter @a-share-analysis/web test:e2e
docker compose -f deploy/compose/development.yml down
Redis 只绑定 127.0.0.1:6379,数据写入仓库忽略的 .local/redis/。RocketMQ 由开发者独立维护 NameServer、Broker 与需要时的 Proxy;TCP 端口可达不等于生产消费链路通过,完整联调仍需验证 Topic 路由和实际生产/消费。