前端跨平台打包工具整理
Posted on: 2023年3月25日 at 16:28
前端构建桌面端应用程序,首先想到的是 Electron
,但是 Electron
构建的桌面端应用程序有一些缺点无法避免:
- 包太大,因为
electron
会自动塞入Chromium
和nodejs
,一个什么也不做的electron
项目压缩后也大概要 50m。 - 内存消耗过大,因为
Chromium
本身就很吃内存,再加上提供操作系统访问能力的nodejs
,很可观的内存消耗,对小工具类的项目不友好。
那么有什么框架可以代替 Electron
吗?
桌面端打包框架
框架 | 前端实现 | 后端实现 | 热度 | 备注 |
---|---|---|---|---|
Tauri | WebView2 (Windows) WebKit (macOS, iOS, & Linux) | Rust | 文档齐全,有中文 | |
Wails | WebView2 (Windows) WKWebView (macOS) | Go | 中文文档齐全 | |
Neutralinojs | WebView2 (Windows) WKWebView (macOS) gtk-webkit2 (Linux) | C++ | 没有中文文档 | |
electrino | WebView2 (Windows) WebKit (macOS) | .Net | 不支持 Linux | |
go-astilectron | Electron | Go | ||
Chromely | Chromium (CEF) | .Net | 不维护了 |
以上的这些框架,基本都是轻量级的 Electron
。打包体积大幅减小,但是对于系统级的 API 支持程度没有 Electron
完备。
移动端打包框架
前面说的是一些打包到桌面端的框架,那么打包到移动端的框架有哪些呢?
框架 | 热度 | 备注 |
---|---|---|
React Native | Facebook 维护,react | |
Apache Cordova | Apache 开源组织下的,年代比较久远了 | |
Capacitor | Ionic Framework 维护,旨在替代 Cordova | |
uniapp | 小程序首选。Native 使用的基于 weex 改进原生渲染引擎 | |
Taro | 支持小程序。Native 使用的 RN |
Flutter
另外还有一个要说的就是 Flutter ,但是他不是 JavaScript 技术栈了。
- 生态社区繁荣
- 文档齐备
- 性能良好
- 几乎所有平台都支持
有条件的话,推荐首选这个吧。