Deno 2.9 新功能:用前端代码直接生成桌面应用,不靠 Electron

更新日期: 2026-07-19 阅读: 596 标签: Deno

过去几年,如果你想用网页技术做一个桌面软件,Electron 几乎是绕不开的选择。像 VS Code、Claude 桌面版这些大家熟悉的工具,底层都是 Electron 在撑着。它的思路很简单:把 Chromium 浏览器引擎和 Node.js 运行时一起打包进去,这样你的网页代码就能像本地软件一样跑起来。

但这个做法有一个代价——体积大。一个简单的 Electron 应用,安装包轻松超过 100 MB。后来出现了 Tauri,它用系统自带的 webview 来渲染界面,不打包 Chromium,所以体积小很多。但 Tauri 要求你写 Rust 后端代码,这对很多前端开发者来说,是个不小的门槛。

现在 Deno 2.9 给出了一条新路子。


Deno desktop 是什么

Deno 2.9 版本新增了一个实验命令 deno desktop。它的作用是:把你现有的前端项目——不管是 React、Vue、Next.js 还是 Astro——直接转成一个桌面应用,输出是一个可以直接运行的 .exe 或 .app 文件。整个过程不需要你写任何 Electron 样板代码,也不需要配置打包工具。

Deno 的做法是,自己充当运行时,同时负责打开一个窗口来显示你的页面。窗口默认用的是操作系统自带的 webview——Windows 上是 WebView2,macOS 上是 WebKit。这样打包出来的文件非常小,启动也快。如果你需要所有平台显示效果完全一致,也可以选择打包 Chromium,但体积会大一些。

使用方式很简单。你可以在代码里用 Deno.serve() 启动一个服务,然后运行 deno desktop 命令,它就会自动打开一个窗口来显示这个服务。如果你的项目里已经有 Next 或 Nuxt 这类框架,Deno 也能自动识别,直接构建并包装成桌面应用。

另外,Deno 还提供了一套原生的桌面 API,比如控制窗口大小、菜单栏这些,不用额外装包就能用。

最方便的一点是交叉编译。你在一台电脑上就能同时生成 Windows、Linux 和 macOS 的安装包,不需要每换一个平台就折腾一遍编译环境。


和 Electron、Tauri 比一比

先把结论放前面:Deno desktop 目前还是实验功能,不建议直接用在正式产品上。但它确实提供了一个新的选择。

对比项ElectronDenoTauri
编程语言JavaScript / TypeScriptJavaScript / TypeScriptRust + JavaScript / TypeScript
渲染引擎Chromium可选 webview 或 Chromium系统 webview
各平台渲染一致一致选 Chromium 时一致,选 webview 时不完全一致不完全一致
兼容 Node 生态支持支持不支持
单机交叉编译支持支持需要目标平台环境
自动识别前端框架不支持支持不支持
支持 iOS / Android不支持不支持支持

从这个表能看出来,Deno 的定位其实很明确:

  • 适合不想学 Rust,又想用纯前端技术做桌面应用的人

  • 适合已经有一个 Next、Nuxt 或 Astro 项目,想快速给它套个桌面壳子的人

  • 适合需要从一台电脑同时编译多个平台版本的人

  • 如果你需要移动端支持,那还是得看 Tauri


实际使用中的感受

目前这个功能刚出来,稳定性和周边工具链还在完善中。比如自动更新、应用签名这些生产环境必须的功能,还没有 Electron 那么成熟的方案。但它的方向是对的——降低桌面应用开发的门槛,让前端开发者用自己最熟悉的工具链就能完成工作。

如果你现在正在做一个内部工具,或者想快速验证一个桌面产品的原型,Deno desktop 值得试一试。它省去了配置 Electron 的繁琐步骤,也不需要你为了体积去啃 Rust。等它后续版本把自动更新、签名这些补齐了,应该会是一个很有竞争力的选择。

对于个人开发者或者小团队来说,能用更少的精力做出一个跨平台桌面应用,这本身就是件好事。Deno 走了一步很多人想了很久的棋,接下来就看社区怎么接住它了。

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

相关推荐

什么是Deno?跟Node.js有何区别?

Node.js的作者Ryan Dahl,过去一年半的时间都在打造一个新的JavaScript运行环境Deno来解决Node的一些内在问题。不过不要误会,得益于JavaScript庞大的社区生态和使用范围

Deno 正式发布,彻底弄明白和 node 的区别

Deno 已经正式发布了!我说这句话时候,是不是很多前端 和 NodeJS 工(码)程(农)师已经按不住自己的40米大刀了。心中的不仅感慨前端是真的会造轮子

初尝Deno,这是我的感受

我发现自己最近的工作效率不是很高,于是快速浏览了一下 GitHub 趋势页面,看看有没有什么比较酷的新项目。其中有个项目排名比较靠前,即 Deno:

Deno 意味着什么?

如果你一直关注 Web 开发领域,那么最近可能已经听到了很多关于 Deno 的信息——一种新的 JavaScript 运行时,它可能也会被认为是 Node.js 的继承者。但是这意味着什么,我们需要“下一个 Node.js” 吗?

Deno会在短期内取代Node吗?

作为Node之父,Ryan Dahl认为Node自从他把项目移交出去后,Node的走向越来越背离了他的初衷,并且存在着很多无法解决的问题,所以他决心重新开发一个新的项目去解决这些问题

Node之父重构的Deno终于发布了,它终究会取代Node吗?

Node之父是谁?没错!就是这个叫Ryan Dahl的男人在2009年创造了Node。你看,其实也不是说大神就都没头发,这位大神毛发不是挺旺盛的嘛!

Deno仍然是个好东西吗?被誉为Node.js替代者的Deno现状如何

Deno 被创建为 Node.js 的改进版本,如果它被社区所接受,那么最终将可能取代 Node.js。但这很难,毕竟 Node.js 已经被我们广泛接受并使用。

JavaScript开发人员更喜欢Deno的五大原因

本文主要通过5个原来来阐述为什么JavaScript开发人员更喜欢Deno, JavaScript 开发人员为什么在使用 Deno 时能比 Node 获得更流畅、更现代化的体验。

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!