chore: 上线前优化 — 清理调试日志/启用组件按需注入/补全组件声明

- 移除全项目 34 处调试 console.* 输出
- project.config.json: minified true、uploadWithSourceMap false、启用 lazyCodeLoading(requiredComponents 组件按需注入)
- pages/records/records.json 补全 ui-skeleton 组件声明(此前漏声明,WXML 已使用)
- 删除根目录残留 preview-buttons.html
This commit is contained in:
2026-08-04 14:05:16 +08:00
parent b52db87ddf
commit 187c426243
14 changed files with 100 additions and 199 deletions
+72
View File
@@ -0,0 +1,72 @@
# 平板支撑训练小程序 · 上线前审查报告
日期:2026-08-04 | 审查范围:上线就绪(合规 / 包体 / 性能 / 云函数部署)
## 一、总体结论
代码质量高,主包仅 **540KB**(远低于 2MB 上限),网络请求**全部走云开发 `wx.cloud.*`**(免 request 合法域名白名单配置),隐私合规链路已在上架期验证可行。
**有 1 个上线阻断项(云函数部署)+ 1 个部署前置(tts 环境变量)必须处理**,其余为建议优化项。未发现功能性 bug、无合规硬伤。
---
## 二、🔴 阻断项(上线前必须完成)
### 1. 云函数必须重新部署(最关键)
> 注意:**git 提交 ≠ 云函数部署**。云函数代码要生效,必须在微信开发者工具里「上传并部署」。
| 云函数 | 近期状态 | 动作 |
|---|---|---|
| `leaderboard` | **本次 b52db87 改了 17 行**(含 totalDays / 全榜勋章逻辑) | **必须重新部署**,否则线上排行榜跑旧逻辑 |
| `tts` | 8-03 改(循环训练语音播报) | 需部署 |
| `getOpenid` | 基础服务,排行榜定位 + 云同步依赖 | 确认已部署 |
| `admin-dedupe` | 一次性清理工具(文档注明部署一次后删除) | 可选 |
部署方式:微信开发者工具 → 右键云函数 → **「上传并部署:云端安装依赖」**(项目无本地 node_modules,需云端 `npm install`)。`tts` 依赖 `tencentcloud-sdk-nodejs` 体积较大,云端安装需等待。
### 2. tts 云函数环境变量必须配好(部署前置)
`cloudfunctions/tts/index.js` 从环境变量读取密钥:
```
TTS_SECRET_ID / TTS_SECRET_KEY / TTS_REGION
```
若未配置,语音合成直接失败(循环训练 / 语音播报失效)。
确认路径:云开发控制台 → `tts` 云函数 → 环境变量;并确认腾讯云 **TTS 服务已开通、密钥有效**
---
## 三、🟡 建议项(不阻断,建议上线前做)
1. **清理调试 `console.log`**`utils/cloud.js` 14 处 + `storage.js` / `voice.js` / `app.js` / `leaderboard` 云函数等。上线应移除或降级(减小包体、避免泄露内部状态、减少日志噪声)。微信审核不强制。
2. **`project.config.json` 上线开关**`minified: false``true``uploadWithSourceMap: true``false`。防源码泄露、减小包体(开发者工具上传界面也有独立勾选,会覆盖此项)。
3. **隐私授权自定义弹窗**:代码无 `wx.onNeedPrivacyAuthorize` 处理。当前能跑(微信自动弹系统默认隐私窗,且后台隐私协议已配、已上架运行一月),但建议加自定义弹窗以更合规、体验更佳。**非阻断**。
4. **全局错误上报**:无 `wx.onError` / `onUnhandledRejection` / `onPageNotFound`。建议加全局异常捕获 + 轻量上报(云监控 / 自建),便于线上排查崩溃。
5. **清理残留文件**`cloudfunctions/shared/`(空死目录,重构遗留;`leaderboard` 实际引用 `./data`,不受影响)、根目录 `preview-buttons.html``.claude/` / `.codegraph/`(工具目录)。小程序只打包组成文件,不影响包体,但建议加 `packOptions.ignore` 或删除以免误传。
6. **确认生产 env**`utils/cloud.js` 硬编码 `ENV_ID=cloudbase-d1g56kl2q8f4f7d8a`,确认是生产环境(通常单一 env 即可)。
---
## 四、✅ 已核实合规 / 无风险项
- 主包 540KB << 2MB,无需分包
- 无硬编码 `http://`,全走 `wx.cloud`(免 request 合法域名配置)
- 隐私接口仅 `chooseAvatar`button `open-type`,后台已声明「用户信息」)
- `app.json` 无需 `requiredPrivateInfos``chooseAvatar` 不在此列)
- `sitemap.json` 标准 allow
- `tabBar` custom + `custom-tab-bar` 目录齐全
- 云函数依赖声明齐全(`wx-server-sdk` / `tencentcloud-sdk-nodejs`
- 内容安全风险低(昵称 / 头像均为用户自身数据,无实时 UGC 发布链路)
---
## 五、上线 Checklist
- [ ] 部署 `leaderboard` / `tts` / `getOpenid` 云函数(云端安装依赖)
- [ ] 配好 `tts` 环境变量并验证 TTS 可用
- [ ] 开发者工具「上传」时勾选 **压缩** + **不上传 sourcemap**
- [ ] 体验版真机回归:训练 → 记录 → 排行榜(含空榜 / 1-2 名虚拟台)→ 设置改头像
- [ ] 确认 MP 后台类目(运动健身类)与隐私协议有效
- [ ] 提交审核,准备测试说明(功能无需登录,排行榜可空榜展示)