👇 今日要闻
打破信息壁垒,走近全球前端。Hello 大家好,我是林语冰。
基于 Web 技术栈开发桌面应用,一般采用 Electron 等项目,它们是 GitHub 最流行的桌面应用框架,开发了地表最强编辑器 VSCode、Claude 等人气产品。
Electron 主要和 Tauri 竞争,但近年来又出现 Electrobun 等新型框架。此外,Node 支持 SEA(独立可执行应用),Vite 生态的 tsdown 也利用了这个功能,但都不会威胁到 Electron 桌面端 GUI 图形界面的霸主地位。
现在,Deno 比 Node 更激进,Deno 2.9 支持把现有的前端框架项目直接转化为桌面应用,最终产物是一个可分发的独立二进制文件,无需编写 Electron 样板代码。

以前是在 Node 或 Deno 等运行时上跑 Electron 等框架,双方各司其职;现在是 Deno 自己基于前端框架生成桌面应用,不带 Electron 玩了。
本期一起来看看 Deno 这个先锋实验有何优缺点,是否会取代 Electron,或者对 Tauri 等生态造成威胁。
👉 Deno 桌面应用速览
以前基于 Web 技术栈构建桌面应用,但 Electron、Tauri 等技术各有痛点:Rust 语言要求、无法与前端框架集成等。
Deno 2.9 开始支持 deno desktop 命令,它可以把 Deno 运行时,Web 渲染引擎等代码打包成二进制文件,将前端框架转化为跨平台的桌面应用。
桌面应用需要浏览器引擎来绘制用户界面,Deno 默认使用原生 webview,也支持打包 Chromium:

webview 使用操作系统内置的渲染引擎,比如 Windows 的 WebView2,macOS 的 WebKit,二进制文件体积小、启动快,但不同平台渲染不完全一致。
如果在所有平台上都使用相同的引擎,可以选用 cef 通过 Chromium Embedded Framework 嵌入框架打包 Chromium,确保所有平台渲染一致,但打包体积较大,构建时需要下载。
👉 基本用法
基本示例是提供一个用户界面的入口,Deno.serve() 会自动绑定 webview 打开的端口:

然后使用 deno desktop 打开原生窗口,渲染页面:

如果不带 main.ts 作为入口,Deno 也会自动检测当前项目中的前端框架,比如 Next、Nuxt 等,然后构建和包装。
此外,Deno 还内置了一套原生桌面 API,无需额外依赖,可以编程控制窗口大小、菜单等。
最后,从一台机器就能交叉编译:

五大平台都支持:
| 目标 | 操作系统 | 架构 |
|---|---|---|
x86_64-pc-windows-msvc |
Windows | x86_64 |
x86_64-unknown-linux-gnu |
Linux | x86_64 |
aarch64-unknown-linux-gnu |
Linux | arm64 |
aarch64-apple-darwin |
macOS | arm64 |
x86_64-apple-darwin |
macOS | Intel |
Deno 的官方示例是一个笔记桌面应用 denidian,效果如下:

👉 适用场景
目前,deno desktop 是 Deno 2.9 最新上线的实验性功能,暂不建议直接落地生产环境。Deno 可能抢占部分桌面应用市场,但它和 Electron 等桌面框架各有优缺点。
Electron / Tauri 的优势在于:
- Electron 有一个沉淀多年的 插件生态,比如 electron-builder 和自动更新抽象,成熟的工具链、打包和签名机制,VSCode 和 Claude 等主流应用都是它的代表产品
- Tauri 则 移动端友好,支持 iOS 和 Android,且二进制文件的体积更小
虽然 Deno 的产品定位不是 Electron 或 Tauri 的直接替代品,但它的优势在于:
- 完全兼容 Node,可选择后端 :Electron 同时打包 Node 和 Chromium,体积臃肿;Tauri 体积更小,但需要借助 Rust;Deno 兼容 Node,可以选用操作系统自带的
webview,也能选用cef(Chromium 嵌入框架) - 零配置框架支持 :Deno 能自动检测前端框架,
deno desktop在 Next、Nuxt 或 Astro 等项目中无需适配器和配置 - 从单一机器交叉编译:Electron 支持跨平台构建,但每个目标平台都需要 Node 和特定平台的签名工具;Tauri 的 Rust 工具链则需要目标平台在本地构建
因此,Deno vs Electron vs Tauri 的技术对照表如下:
| Electron | Deno | Tauri | |
|---|---|---|---|
| 编程语言 | JS / TS | JS / TS | Rust + JS / TS |
| Web 引擎 | Chromium | CEF / WebView | WebView |
| 一致渲染 | ✅ | ✅ | ❌ |
| 兼容 Node | ✅ | ✅ | ❌ |
| 交叉编译 | ✅ | ✅ | ❌ |
| 框架自检测 | ❌ | ✅ | ❌ |
| iOS / Android | ❌ | ❌ | ✅ |
由表可得,以下场景适合使用 Deno 开发桌面应用:
- 无 Rust 开发,基于 JS / TS 的纯 Web 技术栈
- 基于 Next、Nuxt 或 Astro 等前端框架,将其转化为桌面应用
- 需要跨平台的渲染一致性,能接受打包 Chromium 的二进制开销
- 从单一机器交叉编译,不需要移动端应用
- 完全兼容 Node,内置自动更新
👇 重点总结

Deno 2.9 引入了 deno desktop,支持将前端框架项目转化为一个原生的独立桌面应用,其中 UI 在 webview 中运行,逻辑在 Deno 中运行,最终产物能被交叉编译成一个可分发的二进制文件。
Deno 开发桌面应用的优缺点主要有:
- ✅ 基于纯 Web 技术,兼容 Node 生态,无需 Rust 基础
- ✅ 自动检测前端框架,支持
webview或cef(Chromium 嵌入框架) - ✅ 跨平台交叉编译,五大平台完整支持
- ❌ 不支持移动端应用,应用大小取决于技术选择
Deno 开发桌面应用是一个中间地带的先锋实验,相较于 Electron / Tauri 生态各有优缺点,未来或许能进一步竞争桌面应用市场,但暂时不会成为它们的直接替代品。
👍 以上就是本期《前端日报》的全部内容了,如果读完对你有所帮助,可以按赞打卡、在看推荐或转发分享。
🙏 已经关注我的粉丝们,我们下期再见啦,掰掰~~

👇 参考文献:
- 🔗 Deno 桌面应用文档 :docs.deno.com/runtime/des...
- 🔗 Deno 2.9 官方博客 :deno.com/blog/v2.9
- 🔗 笔记应用示例仓库 :github.com/bartlomieju...