前端跨平台打包工具整理
  Posted on:  2023年3月25日  at 16:28    
  
  
这是一篇发布于 615 天以前的旧文,其中的部分内容可能已经过时。
前端构建桌面端应用程序,首先想到的是 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 技术栈了。
- 生态社区繁荣
 - 文档齐备
 - 性能良好
 - 几乎所有平台都支持
 
有条件的话,推荐首选这个吧。