Web 应用(PWA)
Mindwtr 桌面应用可以通过 Vite 构建以浏览器应用方式运行。在浏览器(非 Tauri)中运行时,它使用 localStorage 持久保存数据,并注册 service worker 以支持离线使用和 PWA。
在本地运行
你可以使用 Bun 在本地运行 PWA,也可以使用 Docker。
使用 Docker(推荐)
运行 PWA 容器的说明请参阅 Docker 部署。
使用 Bun
在仓库根目录运行:
bash
bun install
bun desktop:web这会在 http://localhost:5173/ 启动 Vite。
构建以供托管
bash
bun desktop:web:build构建产物位于 apps/desktop/dist/,可作为静态站点托管。
PWA 行为
- 在浏览器中运行时,应用会注册
apps/desktop/public/sw.js sw.js会预缓存/、/index.html、/manifest.webmanifest、/icon.png和/logo.png;之后仅按需缓存脚本、样式、图片和字体等静态资源。API 和同步请求始终通过网络发送。- 导航请求会优先使用网络,仅在离线时回退到已缓存的应用外壳。
- 当前视图保存在
?view=中,因此刷新和复制链接都能保留同一界面,无需在静态托管服务中配置路由。筛选条件不会编码到 URL 中。
托管要求
请将 apps/desktop/dist/ 托管在站点根路径(/)。service worker 从 /sw.js 注册,manifest 也引用根路径。
确保静态托管服务以以下类型提供文件:
manifest.webmanifest:application/manifest+json(推荐)sw.js:application/javascript
如果需要托管在子路径下(例如 /mindwtr/),必须调整 service worker 注册地址和 manifest 路径,使其与基础路径一致。
限制
- 浏览器构建把数据存储在
localStorage中(清除站点数据也会清除 Mindwtr 数据) - 某些仅限桌面端的功能在浏览器中可能不可用,例如需要原生文件访问的文件附件
- 不支持原生系统托盘或全局快捷键