基于 uni-app、Vue 3 与 Pinia 的跨端前端。H5 用于本地评审、私人自托管预览和视觉回归,微信小程序构建物可直接导入微信开发者工具。
- 验证环境:Node.js
24.18.0、npm11.16.0。 - 建议使用 Node.js 24 LTS 与 npm 11;如需复现本仓库的验证结果,请使用上述精确版本。
npm ci- 默认
VITE_DATA_MODE为空或mock:使用本地 Mock 数据。H5 设置页可切换演示场景并重置种子数据。 VITE_DATA_MODE=http走真实 HTTP 适配器,对接 Gateway 公网 API。该模式不混用本地 Mock 工作台或演示数据,也不再读取VITE_HTTP_USERNAME/VITE_HTTP_PASSWORD。
真实 HTTP 预览需要本机已启动 Gateway、Auth、Tracking、Reminder 四服务,并设置:
VITE_DATA_MODE=http VITE_API_BASE_URL=http://127.0.0.1:18080 npm run dev:h5生产构建同样使用这两个变量;VITE_API_BASE_URL 为空时使用当前站点同源地址,
由 Nginx 将 /api/ 反向代理到 Gateway。仅未声明该变量时才回退到
http://127.0.0.1:18080,用于本机开发。
- H5:账号密码表单。账号、密码必须由用户在页面输入,禁止写入构建产物或环境变量。
- 微信小程序:继续使用
uni.login换取 code,调用POST /api/v1/auth/wechat/login。 - 两种登录签发同一 Bearer Token。后续请求只发送
Authorization: Bearer,写接口按契约带Idempotency-Key。 - 退出调用
POST /api/v1/auth/logout并清除本地 Token;收到AUTH_UNAUTHORIZED后回到登录页。
不要设置 VITE_HTTP_USERNAME 或 VITE_HTTP_PASSWORD。账号密码登录的联调账号由部署方自行创建,不进入本仓库。
# H5 开发服务(默认 Mock)
npm run dev:h5
# H5 生产构建
npm run build:h5
# 真实 HTTP 的 H5 生产构建
VITE_DATA_MODE=http VITE_API_BASE_URL= npm run build:h5
# 微信小程序构建
npm run build:mp-weixin使用微信开发者工具导入 dist/build/mp-weixin 目录即可预览小程序构建结果。
# 单元与组件测试
npm test
# Playwright H5 测试(含状态与视觉快照)
npm run e2e
# 类型检查、单测、H5/微信构建与 E2E 聚合门禁
npm run verify可选真实四服务联调(默认跳过):
WORTHIT_HTTP_INTEGRATION=true WORTHIT_HTTP_BASE_URL=http://127.0.0.1:18080 \
WORTHIT_HTTP_USERNAME=local.user WORTHIT_HTTP_PASSWORD=password1 \
npm test -- tests/services/http-integration.spec.ts更新确认过的视觉基线时执行:
npm run e2e -- e2e/visual.spec.ts --update-snapshots