Electron 框架与现代应用

发布: (2025年12月25日 GMT+8 23:06)
4 min read
原文: Dev.to

Source: Dev.to

什么是 Electron?

如果你不熟悉 Electron,它是一个使用 Web 应用来构建原生应用的框架/打包工具。它还使用本地的 Node.js 后端,允许你在前后端都使用 JavaScript。这听起来很棒,直到你仔细分析最终的产物。

Electron 因其内存和磁盘空间需求而闻名——即使是非 Electron 的、仍然使用 Web 代码的应用也显得异常臃肿。这是因为它捆绑了整个 Chromium 实例。它运行的是无头版本,但仍包含完整的浏览器。Chromium 还提供了一个名为 CEF(Chromium Embedded Framework)的嵌入式框架,但 Electron 与其并不相同。

那么,它为何如此流行?

Electron 对团队更友好。

原生代码往往需要大量工作,在团队环境中即使一次小小的失误也可能导致噩梦。Web 代码在团队协作中要容易得多,尤其是对公司而言,并且兼容众多前端框架。你甚至可以让后端开发者参与 Node.js 那一侧的工作。

然而,使用 Electron 会给用户带来巨大的成本。虽然看起来可能不是这样,但大约 90 % 的用户并没有使用高性能的电脑,且约有 25–30 % 的用户内存不超过 4 GB。

我的个人看法

开发者制作应用是为了服务用户,但现代框架(如 Electron)往往似乎先服务于开发者。如果你忘记了自己是为用户而不是为自己服务,那么你 不是 开发者。

我并不想冒犯任何使用 Electron 的人,但只要有可能,原生方案始终是更好的选择。如果你想要基于 Web 的前端,还有许多替代方案。

Electron 替代方案

Tauri

Tauri 是一个 Rust 框架,使用系统自带的原生 Web 引擎(Windows 上的 WebView2、macOS 上的 Safari、以及大多数 Linux 发行版上的 Gecko)来渲染基于 Web 的 UI。后端使用 Rust,而前端保持轻量,从而让你对应用的生命周期拥有更多控制。

体积对比(最小应用):

  • Tauri: < 5 MB
  • Electron: 200 + MB

Flutter

Flutter 是一个 UI 工具包,让你使用 Dart 编写应用,并可编译到移动端、桌面端和 Web(尽管对于以桌面为主的项目,一般不推荐使用 Web 目标)。在桌面构建中,Dart 会被编译成本地代码并与 Flutter 的渲染引擎链接,生成的二进制文件可与原生 C++ 应用相媲美。

体积对比(最小应用):

  • Flutter: 20–30 MB
  • Electron: 200 + MB

结论

对于重视跨平台单一代码库的团队来说,Electron 合理且有意义,但像 Tauri 和 Flutter 这样的替代方案可以通过提供更小、更高效的二进制文件,更好地服务终端用户。

如果你在 25 号阅读此文,圣诞快乐。

Back to Blog

相关文章

阅读更多 »