Files
opsxapi/apps/web/vite.config.ts
T
logan aabd20bd75 账号与团队:SQLite 云端空间(个人 / 团队共享 + 自动同步)
- 服务端(Gin + modernc.org/sqlite,data/opsxapi.db WAL):
  - users/tokens/teams/team_members/workspaces 表;注册登录(加盐哈希 + Bearer 令牌)
  - /api:auth register/login/logout、me(用户+团队+空间)、teams CRUD/邀请成员、workspaces 读写(20MB 上限,成员鉴权)
- 前端:
  - account.ts 客户端 + store 账号态:登录/注册/登出/团队/空间切换
  - 顶栏账号区:未登录「登录」按钮;登录后用户胶囊(头像+空间名+已同步/同步中/失败)+ 空间切换菜单 + ⋯(立即同步/团队管理/退出)
  - 空间模型:本地(localStorage)与云端(SQLite)隔离,切云端空空间自动播种本地数据;云端改动 1.5s 去抖自动同步;切回本地恢复快照
  - 登录/注册弹窗 + 团队管理弹窗(建团队、邮箱邀请);vite 代理 /api;docs 新增「账号与团队」页
- 验证:curl E2E(注册/冲突 409/错误密码 401/团队共享写/越权 401)+ 浏览器全链路(注册→播种上云 17KB→云端编辑自动同步→本地快照隔离)
2026-09-18 11:42:34 +08:00

46 lines
1.1 KiB
TypeScript

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import path from "node:path";
export default defineConfig({
plugins: [react()],
resolve: {
alias: {
"@opsxapi/core": path.resolve(__dirname, "../../packages/core/src/index.ts"),
"@opsxapi/transport": path.resolve(__dirname, "../../packages/transport/src/index.ts"),
"@opsxapi/ui": path.resolve(__dirname, "../../packages/ui/src/index.ts"),
},
},
server: {
host: "127.0.0.1",
port: 5173,
strictPort: true,
proxy: {
"/api": {
target: "http://127.0.0.1:8787",
changeOrigin: true,
},
"/v1": {
target: "http://127.0.0.1:8787",
changeOrigin: true,
},
"/health": {
target: "http://127.0.0.1:8787",
changeOrigin: true,
},
"/docs": {
target: "http://127.0.0.1:8787",
changeOrigin: true,
},
"/home": {
target: "http://127.0.0.1:8787",
changeOrigin: true,
},
"/site": {
target: "http://127.0.0.1:8787",
changeOrigin: true,
},
},
},
});