NW.js
NW.js(原名 node-webkit),是一个基于Chromium和node.js的应用运行时,通过它可以用html+js编写原生应用程序。允许从DOM调用Node.js模块。
优点
- 支持chrome 插件和chrome api
- 现成的pdf插件,打印pdf
- 源码保护:NW.js,提供二进制js加密方案,可以将源代码变异成assembly,保护源代码
- 参考
缺点
- 无法自动更新
- 只能使用nodejs的api
Electron
Electron是一个使用js+html+css构建桌面应用程序的框架,嵌入Chromium和Node.js到二进制文件。
优点
- 可以热更新
- 社区活跃
- electron对chromiun的node整合更灵活,对其他node的应用可以有更好的整合
缺点
- 牺牲了nodejs中的网络特性
- 启动慢
- 分为渲染进程和主进程,node内存开销大
- 安装包大小难以优化
- 源码保护问题:electron打包时,提供了asar这种archieve文件格式,会将所有源码和依赖封装,并不提供加密操作,可以很简单的解压得到源码。
PWA
PWA(Progressive Web Apps),渐进式web应用,运用现在web api以及传统的渐进式增强策略来创建跨平台web应用程序。
优点
- PWA是可被发现,易安装,可链接,独立于网络,渐进式,可重用,响应性和安全的。
- 向网页一样立即部署,无需安装应用程序
缺点
- 打印机,node服务,本地数据库,读写文件等功能受限