Skip to content

Repository files navigation

值不值小程序

基于 uni-app、Vue 3 与 Pinia 的跨端前端。H5 用于本地评审、私人自托管预览和视觉回归,微信小程序构建物可直接导入微信开发者工具。

环境与安装

  • 验证环境:Node.js 24.18.0、npm 11.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_USERNAMEVITE_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

About

WorthIt cross-platform frontend

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages