Deno Desktop

使用 Deno 2.9 的 deno desktop 将 Web 应用打包为跨平台桌面程序

deno desktop 从 Deno 2.9 起可用。它把 TypeScript/JavaScript 应用、Deno 运行时和 Web 渲染后端打成每个平台的自包含桌面产物。

最短流程

deno --version       # 需要 2.9+
deno desktop --hmr main.ts
deno desktop main.ts

入口可以是小型 Deno.serve 应用,也可以是 Next.js、Astro、Fresh、SvelteKit 等框架项目。具体 adapter、静态资源和开发命令按框架官方指南配置。

能力与边界

能力当前含义
窗口Deno.BrowserWindow 管理生命周期与多窗口
前后端通信显式 bindings,不把任意 renderer 输入当可信代码
桌面集成菜单、托盘、Dock、对话框和系统通知
调试--hmr 与统一 DevTools
分发支持目标 triple 和 --all-targets 交叉构建
更新Deno.autoUpdate() + bsdiff + 失败回滚
deno desktop --target aarch64-apple-darwin main.ts
deno desktop --all-targets main.ts

发布检查

  • 为 macOS/Windows 配置真实代码签名;ad-hoc 签名不足以消除 Gatekeeper 警告。
  • 在每个目标 OS 验证通知、文件对话框、GPU、字体和自动更新。
  • 自动更新清单使用 Ed25519 签名;更新服务走 HTTPS。
  • 官方文档说明 Windows 当前尚不能应用已下载的 auto-update patch,发布前再次核对。
  • 错误报告可能含 stack 与运行时上下文,只发送到 HTTPS,并先做数据分级。

官方依据:Desktop appsDistributionAuto-update

输入关键词搜索全部文档。