Deno Desktop:把 Deno 项目打包成桌面应用

查看原文 HN 讨论

文章摘要

Deno Desktop 是 Deno 推出的一项新功能,可以把一个 Deno 项目——从单个 TypeScript 文件到完整的 Next.js 应用——转换成自包含(self-contained)的桌面应用。编译出的每个二进制文件都打包了你的代码、Deno 运行时,以及目标平台的 Web 渲染引擎。

它的主要能力包括:框架自动集成——能自动检测并运行 Next.js、Astro、Fresh、Remix、Nuxt、SvelteKit 等主流 Web 框架,无需修改代码;既能以 release 模式运行生产服务器,也能以热重载方式运行开发服务器。灵活的渲染后端——开发者可以在操作系统原生 webview(生成更小的二进制文件)和打包的 Chromium(CEF,提供跨平台一致的渲染)之间选择。直接通信——与传统桌面框架不同,Deno Desktop 用进程内通道(in-process channels)实现后端与 UI 的通信,而非基于 socket 的进程间通信(IPC),从而降低延迟。跨平台构建——单台机器即可同时为 macOS、Windows 和 Linux 编译,无需在本地分别构建各平台后端。内置更新——框架自带基于二进制差分(binary-diff)的自动更新和回滚能力,只需一份简单的 manifest 文件。

上手非常简单:用 Deno.serve() 写一个基本的 HTTP 服务器,然后对该文件运行 deno desktop,编译出的二进制就会自动打开并连接到你的本地服务器。它被普遍视为 Tauri、Electron 的有力竞争者。

HN 评论精华

整体讨论围绕着原生 UI 一致性 vs. 实用功能的权衡、对各平台 WebView 质量参差不齐的不满,以及”竞争有利于整个生态”的共识展开。