关于Nodejs开发桌面应用。NW.js 和 Electron 优缺点分析对比

时间:2022-03-07 13:27:39

从开发角度来说,选择用 nw.js 还是 election ,区别其实不是很大。大部分工作还是在自己的 javascript 和 HTML 上。
国内比较有名的,比如微信web开发工具、钉钉都是基于 nw.js 开发的

electron 相对来说比 nw.js 靠谱。有一堆成功的案例:

1. Atom 编辑器 2. Slack (那个独角兽公司)3. Visual Studio Code 4. WordPress 等等。。

优点:
1. 开源的核心扩展比较容易,目前是基于 node 6.x,加之现在 gyp 已经非常人性化了,使得c++ 和 js 搞基非常容易。
2. 界面定制性强,原则上只要是Web能做的他都能做。
3. 是目前最廉价的跨平台技术方案,HTML+JS 有大量的前端技术人员储备,而且有海量的现存web UI 库。大多都很靠谱。
4. 相对其他跨平台方案(如 QT GTK+ 等),更稳定,bug少, 毕竟只要浏览器外壳跑起来了,里面的问题不会太多 ,当然我也遇到过一些暗坑。
5.方便热更新。下载覆盖完事。当然这是所有脚本共有的优点。

缺点:
1.卡,启动慢,这可能是webkit的锅。毕竟一个浏览器要支持的功能确实有点多。
2.除了主进程 你可能还需要启动一些辅助进程来完成工作。而每当你新开一个进程,起步价就是一个nodejs的内存开销!
3.丢帧,这个最严重,可我已习惯了native 的丝滑. mac下感觉还可以 win下有点够呛。
4.打出来的包太大。(很显然,即便是一个空包,也至少包含了一个浏览器的体积)

nw.js 现在半死不活,弃坑吧。。 (除非你要兼容XP。。)codebye.com

如下是2016年国际友人总结的nw.js 和 election对比图,请参考codebye:

  NW.js 0.16.0 Electron 1.2.8
Project inception 2011 2013
Corporate Sponsor Intel GitHub
Licensing Open Source, MIT License
Browser Runtime Chromium libchromiumcontent
Node.js Version  6.3.0 6.1.0
Chromium Version 52.0.2743.82 51.0.2704.106
Entry Point HTML or JavaScript4 JavaScript
Bare Distribution Size 139MB (52MB zipped) 125MB (45MB zipped)
Windows Platform Support Windows 7+ (x86 and x64)
Windows XP Support In LTS version (0.14.x) No
Mac Platform Support Mac OS X.9 +
Mac OS X.6 In LTS version (0.14.x)  No
Architecture Support 32bit (Win), 64bit (Win/Mac) & arm (limited)
Chrome Apps Support Yes No
Support of chrome.* APIs Yes No
Plugin Support NaCL, Pepper Pepper
Adobe Flash Support via Pepper Plugin
Mac App Store Support Yes
Windows App Store Support Yes Windows 10+ (details)
App signing Yes
Source Code Protection V8 Snapshot1 ASAR Archive Support2
Auto-update Unclear (module) Mac/Win (thru Squirrel)
Crash Reporting No Yes
Kiosk Mode Partial (Buggy on Mac5)
PDF Viewer  Yes Using pdf.js
Native Node Module Support Yes
SSL Client Certificate Yes Partial (details)
Print Preview Yes No
DevTools Extension Support Yes
Debugging DevTools + extensions Dedicated Devtron Module
Integration Testing ChromeDriver & WebDriver Dedicated Spectron Module
Windows Installer Yes (nw-builder) Yes (external module)
html5test.com Score 492
Octane 2.0 Score3 27205 27343
Issue Resolution Time6 关于Nodejs开发桌面应用。NW.js 和 Electron 优缺点分析对比 关于Nodejs开发桌面应用。NW.js 和 Electron 优缺点分析对比
Open Issues6 关于Nodejs开发桌面应用。NW.js 和 Electron 优缺点分析对比 关于Nodejs开发桌面应用。NW.js 和 Electron 优缺点分析对比
GitHub Trends      
Open Codecs/Containers Vorbis, Theora, Opus, VP8, VP9, PCM, Ogg, WebM, WAV
Licensed Codecs MP3, MP4, H.264, AAC7