返回

文章详情

Deno桌面

Hacker News2026年6月22日 05:38

deno desktop 将一个 Deno 项目(从单个 TypeScript 文件到 Next.js 应用程序)转换为一个自包含的桌面应用程序。输出是一个可再分发的二进制文件,它将您的代码、Deno 运行时和一个网络渲染引擎打包成每个平台一个包。从 Deno 2.9 开始,deno desktop 在 Deno v2.9.0 中发布,目前还没有稳定版本。要立即尝试,请运行 deno upgrade canary 安装预发行版本。命令、配置键和 TypeScript API 在功能稳定之前可能会有所更改。为什么选择 deno desktop 跳到标题 网络技术是全球最广为人知的 UI 工具包。基于 Web 技术堆栈(Electron、Tauri、Electrobun)的桌面应用程序利用了这一点,但每种都有您必须接受的权衡:巨大的二进制文件、缺失的平台支持、没有 JavaScript 生态系统、没有内置更新机制、没有框架集成。deno desktop 对这些权衡有自己的见解:默认情况下体积小,完全兼容 Node。默认的 WebView 后端使用操作系统自己的 WebView,保持小型二进制文件,同时您仍然可以通过 Deno 的 Node 兼容层访问整个 npm 生态系统。当您需要在 macOS、Windows 和 Linux 之间实现相同的渲染时,可以选择打包的 Chromium(CEF)后端。框架自动检测。将 deno desktop 指向一个 Next.js、Astro、Fresh、Remix、Nuxt、SvelteKit、SolidStart 或 Vite SSR 项目,它会运行:以发布模式运行的生产服务器,带有热重载的开发服务器(--hmr)。将现有的 Web 项目转换为桌面应用程序无需任何代码更改。进程内绑定而非 IPC。后端和 UI 的通信通过进程内通道,而不是基于套接字的 IPC。值在跨越调用边界时仍然被编码,但您的 Deno 代码与 WebView 之间没有跨进程的往返。可以从一台机器交叉编译。同一台机器可以构建 macOS、Windows 和 Linux 的应用程序。后端根据需要下载,而不是本地构建。内置的二进制差异自动更新。只需发布一个最新的 json 清单和 bsdiff 补丁;运行时自动轮询、应用并在启动失败时回滚。你好,桌面 跳到标题 创建一个单文件桌面应用程序:main.ts Deno.serve(() => new Response("<h1>Hello, desktop</h1>", { headers: { "content-type": "text/html" } })) ; >_ deno desktop main.ts 编译后的二进制文件打开一个指向绑定到您的 Deno.serve() 处理程序的本地 HTTP 服务器的窗口。直接运行它:>_ ./main # macOS / Linux .\ main.exe # Windows Deno.serve() 自动绑定到 WebView 导航到的地址,因此您无需传递端口或主机名。有关详细信息,请参见 HTTP 服务。此部分包含的内容 跳到标题 配置:deno.json 中的 desktop 块。后端:CEF、webview、raw;如何选择。HTTP 服务:Deno.serve() 集成及服务模型。框架:Next.js、Astro、Fresh、Remix、Nuxt、SvelteKit 等。Windows:Deno.BrowserWindow 生命周期、多窗口、事件。绑定:通过 bindings.<name>() 从 WebView 调用 Deno 代码。菜单:应用程序菜单和上下文菜单。托盘和停靠:系统状态图标和 macOS 停靠栏。对话框:prompt()、alert()、confirm() 作为本机弹出窗口。通知:通过 Web 通知API 提供的本机操作系统通知。热模块替换:--hmr 用于框架和非框架应用。开发工具:统一的开发工具附加到 Deno 运行时和 WebView。自动更新:Deno.autoUpdate()、清单、bsdiff、回滚。错误报告:捕获未捕获的异常和 panic。发布:交叉编译、输出格式、安装程序。比较:deno desktop 与 Electron、Tauri、Electrobun、Dioxus 的关系。deno desktop CLI 参考:命令、标志和 deno.json 桌面架构。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡