编程 Deno 2.9 支持桌面应用:无需 Electron,前端框架直接变二进制

2026-07-04 07:38:47 +0800 CST views 11

Deno 2.9 直接支持桌面应用:无需 Electron,前端框架秒变二进制

基于 Web 技术栈开发桌面应用,一般采用 Electron 等框架。但现在,Deno 比 Node 更激进——Deno 2.9 支持把现有的前端框架项目直接转化为桌面应用,最终产物是一个可分发的独立二进制文件,无需编写 Electron 样板代码。


一、背景:桌面应用的「三国杀」

以前基于 Web 技术栈构建桌面应用,但现有方案各有痛点:

框架痛点
Electron同时打包 Node + Chromium,体积臃肿
Tauri需要 Rust 语言基础,学习成本高
Electrobun新框架,生态不成熟

现在,Deno 2.9 来了——它直接提供了 deno desktop 命令,把 Deno 运行时和 Web 渲染引擎打包成二进制文件,将前端框架转化为跨平台的桌面应用。

以前:在 Node/Deno 等运行时上跑 Electron 等框架,双方各司其职。
现在:Deno 自己基于前端框架生成桌面应用,不带 Electron 玩了


二、核心架构:WebView vs CEF

桌面应用需要浏览器引擎来绘制用户界面,Deno 提供两种选择:

WebView(默认)

使用操作系统内置的渲染引擎:

平台引擎
WindowsWebView2
macOSWebKit
LinuxWebKitGTK

优点:二进制文件体积小、启动快
缺点:不同平台渲染不完全一致

CEF(Chromium Embedded Framework)

在所有平台上都使用 Chromium 引擎:

优点:确保所有平台渲染一致
缺点:打包体积较大,构建时需要下载


三、基本用法

创建桌面应用

// 提供一个用户界面的入口
Deno.serve();  // 自动绑定 webview 打开的端口

启动桌面应用

deno desktop main.ts

如果不带 main.ts 作为入口,Deno 也会自动检测当前项目中的前端框架(如 Next、Nuxt 等),然后构建和包装。

原生桌面 API

Deno 内置了一套原生桌面 API,无需额外依赖,可以编程控制窗口大小、菜单等:

const window = Deno.desktop.window();
await window.setSize({ width: 1024, height: 768 });
await window.setTitle("我的桌面应用");

交叉编译

从一台机器就能交叉编译到五大平台:

deno desktop --target x86_64-pc-windows-msvc
deno desktop --target aarch64-apple-darwin
目标操作系统架构
x86_64-pc-windows-msvcWindowsx86_64
x86_64-unknown-linux-gnuLinuxx86_64
aarch64-unknown-linux-gnuLinuxarm64
aarch64-apple-darwinmacOSarm64
x86_64-apple-darwinmacOSIntel

官方示例

Deno 的官方示例是一个笔记桌面应用 denidian

git clone https://github.com/bartlomieju/denidian
cd denidian
deno desktop

四、Deno vs Electron vs Tauri 对比

特性ElectronDenoTauri
编程语言JS / TSJS / TSRust + JS / TS
Web 引擎ChromiumCEF / WebViewWebView
一致渲染
兼容 Node
交叉编译
框架自检测
iOS / Android
二进制体积
生态成熟度极高实验性

五、适用场景

✅ 适合 Deno 桌面应用的场景

  1. 纯 Web 技术栈团队:无 Rust 开发经验,基于 JS/TS
  2. 使用 Next/Nuxt/Astro 等框架:deno desktop 自动检测,零配置
  3. 需要跨平台渲染一致性:可选择 CEF(接受稍大的二进制体积)
  4. 不涉及移动端:目前 Deno 不支持 iOS/Android

❌ 仍然适合 Electron/Tauri 的场景

  • 需要成熟插件生态(electron-builder、自动更新等)
  • 需要移动端支持(Tauri 支持 iOS/Android)
  • 二进制体积极其敏感(Tauri 最小)

六、现状与展望

deno desktopDeno 2.9 最新上线的实验性功能,暂不建议直接落地生产环境。

优点总结

  • ✅ 基于纯 Web 技术,兼容 Node 生态,无需 Rust 基础
  • ✅ 自动检测前端框架,支持 webview 或 cef
  • ✅ 跨平台交叉编译,五大平台完整支持

缺点

  • ❌ 不支持移动端应用
  • ❌ 生态尚不成熟
  • ❌ 实验性功能,API 可能变动

一句话:Deno 开发桌面应用是一个中间地带的先锋实验,相较于 Electron / Tauri 生态各有优缺点,未来或许能进一步竞争桌面应用市场,但暂时不会成为它们的直接替代品。


相关链接


原文综合整理自微信公众号。

推荐文章

Test Article ASCII Only
2026-06-28 02:15:46 +0800 CST
宝塔面板 Nginx 服务管理命令
2024-11-18 17:26:26 +0800 CST
JavaScript 实现访问本地文件夹
2024-11-18 23:12:47 +0800 CST
Vue中的`key`属性有什么作用?
2024-11-17 11:49:45 +0800 CST
基于Webman + Vue3中后台框架SaiAdmin
2024-11-19 09:47:53 +0800 CST
Vue3中如何使用计算属性?
2024-11-18 10:18:12 +0800 CST
Nginx 防止IP伪造,绕过IP限制
2025-01-15 09:44:42 +0800 CST
html一个包含iPhoneX和MacBook模拟器
2024-11-19 08:03:47 +0800 CST
PHP 如何输出带微秒的时间
2024-11-18 01:58:41 +0800 CST
ElasticSearch 结构
2024-11-18 10:05:24 +0800 CST
Rust async/await 异步运行时
2024-11-18 19:04:17 +0800 CST
程序员茄子在线接单