Electron
Electron是一个使用 JavaScript 构建桌面应用程序的框架。
Electron 应用相当于一个node.js启动的,使用Chromium内核的浏览器应用。在浏览器及Node.js的能力基础上,Electron还提供了API控制桌面应用的部分功能,例如托盘图标、自定义任务栏、系统级别快捷键等。
对比竞品 Tauri
Tauri 简单介绍是一个展示前端页面的 Rust 应用,它调用系统的 Webview 组件展示网页,因此打包体积很轻量。
角度 | Electron | Tauri |
---|---|---|
发布年份 | 2013 | 2020 |
兼容性 | 最好 | 差 |
包体积 | 很大 | 很小 |
启动速度 | 慢 | 快 |
技术栈 | 前端JS + 后端Node.js | 前端JS + 后端Rust (计划后端支持多语言) |
可以尝试使用 Tauri 构建性能极佳的桌面端网页应用。但考虑不特定用户的跨平台兼容性,Electron 仍然是首选的,因为它内置Chromium,开发中无需考虑跨平台兼容性问题。
上手 Electron
按照官方文档的快速入门是有点坑的,它剥离了打包工具,导致按流程走完后,需要将写好的代码移进打包工具指定的模板里。
所以建议直接使用打包工具:
- electron forge Electron官方维护,以前内置的打包功能移到这里了
- electron builder 社区维护的适配多平台特性打包的解决方案
开发说明
Electron 应用的简洁说明:
- main.js 主进程,启动node.js本地服务
- UI界面可以是本地网页,也可以是在线网页
- node.js与网页间通信,可以直接通过ipc相关API在进程间通信,也可以另起HTTP服务进行通信
适用场景
除了基本的前端开发桌面应用程序的需求场景,Electron真正的能力是“桌面应用程序”,可以实现包括但不限于以下需求:
- 改写浏览器启动参数,忽略HTTPS证书问题
- 突破浏览器安全限制,访问文件系统、跨域访问资源
- 作为容器发布客户端 Node.js、其他可执行程序应用