系统代理、多语言、自动更新、签名、可观测性…… 这些每个 App 都会重复遇到。用框架插件 + 一个可复用 golden starter + 这份 checklist,一次接好,长期复用。
核心策略
桌面开发没有单一的“Lighthouse”,但可以用这三层把横切关注点变成默认能力。
Tauri 2 / Electron 生态已覆盖 updater、deep-link、single-instance、autostart、notification、window-state、store、log、http(带系统代理)、stronghold…… 能用插件就别手写。
把日志、崩溃上报、i18n、更新、设置存储、主题、代理、遥测同意、CI 签名接一次,做成内部脚手架(paved road)。新 App 直接 degit 一份就带全。
把下面这份清单变成 CI 门禁(体积、cargo audit、a11y、E2E、打包后 smoke、签名校验),而不是靠人记。
工具地图
没有单一等价物(桌面被三个 OS 割裂),但可以拼出等价能力 = 崩溃上报 + 遥测 + 性能剖析 + a11y 检查器 + 安全扫描 + checklist。
| 关注点 | 前端类比 | 桌面 / Tauri 对应 |
|---|---|---|
| 崩溃 / 错误 | Sentry web | Sentry(Rust/JS SDK)、Crashpad / Breakpad(原生 minidump)、human-panic |
| 遥测 / 分析 | PostHog、GA | Aptabase(桌面/移动、隐私优先,最贴 Tauri)、PostHog、OpenTelemetry |
| 日志 | console + 采集 | tracing + tauri-plugin-log(滚动 + 一键导出) |
| 性能剖析 | Lighthouse、DevTools | macOS Instruments / Windows WPA(ETW)/ Linux perf;冷启动打点 |
| 包体 / 启动预算 | bundle analyzer | bundle 门禁 + 二进制体积 + 冷启动预算 |
| 可访问性 | axe、Lighthouse a11y | axe-core(跑 webview)+ macOS Accessibility Inspector / Windows Accessibility Insights |
| 依赖 / 供应链 | npm audit | cargo audit、cargo deny、osv-scanner、Trivy、SBOM |
| E2E | Playwright | Playwright(webview)/ tauri-driver(WebDriver)/ Appium |
rustls-tls(内置 Mozilla 根)时,企业 MITM 代理 / 自签 CA 会握手失败。改用 rustls-tls-native-roots 或 native-tls 走系统证书库,否则公司网络里整包请求全挂。发布前逐项过
落地
cargo audit + osv-scanner、a11y、E2E、打包后 smoke、发版签名校验,自动挡住回归。