😭 Electron 麻了,Deno 直接支持二进制应用,无需第三方桌面应用框架!

👇 今日要闻

打破信息壁垒,走近全球前端。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 基础
  • ✅ 自动检测前端框架,支持 webviewcef(Chromium 嵌入框架)
  • ✅ 跨平台交叉编译,五大平台完整支持
  • ❌ 不支持移动端应用,应用大小取决于技术选择

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

👍 以上就是本期《前端日报》的全部内容了,如果读完对你有所帮助,可以按赞打卡、在看推荐或转发分享。

🙏 已经关注我的粉丝们,我们下期再见啦,掰掰~~

👇 参考文献:

相关推荐
Ivanqhz1 小时前
NFM(神经因子分解机)
开发语言·javascript·人工智能·算法·蓝桥杯
Damai2 小时前
DOMPurify 完整介绍
前端·面试
随风一样自由2 小时前
【前端+跨域】跨域问题全面解析与解决方案指南
前端·跨域
小帅不太帅2 小时前
我随手发了几张截图,白拿了一个月 AI 顶配会员
前端·github
36岁的我开始学习打篮球2 小时前
外规内化技术架构
前端
雪隐2 小时前
用Flutter做背单词APP-03为了给单词库塞满数据,我让AI给我打了上万份工
前端·人工智能·后端
hunterandroid2 小时前
Android 安全最佳实践:从数据存储到网络通信的防护思路
前端
H Journey2 小时前
web开发学习:html、css、js
前端·css·html·js
hunterandroid2 小时前
Compose 性能优化:从卡顿到丝滑的实战经验
前端