Tauri 外壳
桌面外壳基于 Tauri 2 构建。它拥有原生窗口、启动后端, 并保证两者一起关闭。
外壳的工作
外壳做三件事:
- 派生 sidecar —— 它启动自包含的 Node.js 后端进程, 并在打开 webview 之前等待本地 API 就绪。你绝不会看到一个指向死服务器 的半加载窗口。
- 托管 webview —— 生产 Web 应用在 Tauri webview 中运行,
并通过一个随机空闲端口上的
127.0.0.1与后端通信。 - 拥有生命周期 —— 窗口事件和进程事件被连接起来, 使后端和外壳总是作为一个整体退出。
窗口生命周期
- 关闭 —— 关闭窗口会触发 sidecar 的优雅关闭。后端被要求干净地停止, 应用在退出前等待它。不会留下孤立的 Node.js 进程。
- 后端崩溃 —— 如果 sidecar 意外退出,外壳会以错误终止, 而不是显示一个什么都做不了的窗口。正常退出被单独标记, 因此干净的关闭永远不会被误认为是崩溃。
- 重启 —— 再次启动应用会从头重新派生 sidecar。状态存在于数据目录中, 而不是进程中,因此重启是无损的。
窗口就是 API
由于外壳在显示内容之前等待 API,首次启动感觉是即时的:窗口在应用就绪时
打开。后端只在临时端口上的 127.0.0.1 监听,
因此不会向网络暴露任何东西。
更新器集成
发布构建集成 Tauri 更新器。外壳可以检查核心更新、验证清单和 minisign 签名、安装平台工件并重启。更新器独立于用户的数据目录替换核心, 未签名的降级被拒绝。没有更新端点和公钥构建的版本功能完整, 但会报告更新未配置。
开发构建
对于开发,同一个外壳可以针对开发服务器和本地启动的后端运行。
生产保证 —— sidecar 随窗口退出 —— 适用于打包构建;pnpm desktop:dev
把外壳连接到你在运行的开发进程。
sidecar 如何打包和管理,请参阅Node Sidecar。