README.md 3.8 KB

Fmode App v2 · 数字生命客户端

Fmode 双端 IM 中枢:桌面横版工作台(/desktop/**)+ 手机竖版(/mobile/**)。 Angular 20 standalone SPA,无自建后端 —— 数据全部经 fmode 平台云函数 + Matrix。

环境与命令

命令 构建配置 数据源 用途
npm start development 真实后端 日常开发(http://localhost:4200)
npm run start:local local 真实后端(environment.local.ts) 指向测试/预发环境联调
npm run start:mock mock 演示数据 无后端时走 UI / 看设计
npm run build production 真实后端 部署用
npm run build:mock mock-production 演示数据 冒烟测试、演示包
npm test — — 单测(Karma + Jasmine)
npm run smoke — — 双端全路由冒烟(需先 npm run build:mock)
npm run verify:ui — — UI 规范断言
npm run deploy production 真实后端 构建 + 上传 OBS + 刷新 CDN

环境切换

后端地址只有一个真源:src/environments/environment.base.ts。 各环境文件继承它,只覆盖自己需要的字段。

  • 本地指向测试环境:复制 environment.local.example.ts → environment.local.ts 改地址,跑 npm run start:local。 该文件不入库(.gitignore)。
  • 不要为了切环境去改 environment.base.ts,否则所有人一起变。

数据源开关 useMockData 是唯一的数据层分支:true = MockApi,false = ParseApi。 npm start / npm run build 恒为 false;演示态只能通过 mock 系列配置进入。

部署

前置条件(只需一次):

# obsutil:https://support.huaweicloud.com/utiltg-obs/obs_11_0003.html
# hcloud :https://support.huaweicloud.com/utiltg-hcloudcli/hcloudcli_01_0002.html
obsutil config -i=<AK> -k=<SK> -e=obs.cn-south-1.myhuaweicloud.com
hcloud configure set --cli-profile=default --cli-access-key=<AK> --cli-secret-key=<SK>

凭据只存本机 CLI 配置,不进仓库、不进脚本。

npm run deploy                 # 完整流程
node scripts/deploy.mjs --skip-build   # 复用已有 dist
node scripts/deploy.mjs --dry-run      # 只打印动作

流程:构建 → 产物自检(拦截演示包/空产物)→ sync 到 OBS → 设 public-read → 刷新 CDN → 探活。

⚠️ OBS 静态托管的 SPA 深链(直接访问 /desktop/chat)需要在桶的静态网站配置 里把错误文档设为 index.html;否则刷新深链会 404。这一项在华为云控制台配置,代码侧无法替代。

目录

src/app/
  core/         共享服务(数据访问、Matrix、会话、路由守卫…)
  components/   业务外壳组件(会话树、消息气泡、预览…)
  ui/           ui-kit 官方组件底座(整目录接入,禁改业务无关代码)
  desktop/      桌面端 shell + pages
  mobile/       移动端 shell + pages
  pages/        双端共用页面(入口、登录)
src/environments/   环境配置(base 为地址真源)
scripts/            构建/校验/冒烟/部署脚本

已知限制

  • 主包 gzip 约 146 kB,超出 production 的 500 kB(原始体积)警告线,属已知、不阻塞。
  • fetchTasks / fetchTaskDetail 云函数接收端未实现,前端显式抛错。
  • tasks[] 多任务字段在存量系统中从未落库。

本机 CLI 安装状态(2026-11-02)

已安装并配置(仅本机,不入库):

工具 路径 配置
obsutil 5.8.9 %USERPROFILE%\tools\obsutil\obsutil_windows_amd64_5.8.9 %USERPROFILE%\.obsutilconfig
hcloud (KooCLI) %USERPROFILE%\tools\hcloud profile default,含 cli-domain-id

两者均已加入用户 PATH,新开终端直接可用。