nodejs 打包成独立的可执行文件/跨平台 gui 的选择

nodejs 打包

  • pkg: pkg koa.js
  • opn: 在 js 里打开外部应用

跨平台 gui 的选择

  • electron 最大的缺点, 现代版的 flash (檄文), 写出来的 helloworld 可能是世上体积最大的(115M)

  • nwjs 对比 electron 的优势是? 知乎有一篇讨论. 特点是对 chromium 的整合更深入, 魔改了 chromium. 早年据说坑很多, 最大的优势可能是兼容 xp, 现在可能坑都填起来了

  • electrino electron 的瘦身版, 不再附带 chronium, 而是利用 os 自带的浏览器引擎. 也是一个实验性质的产品, 截止 2018-05-20, 已经半年没有开发了.

  • Quark electrino 死了之后, 其他开发者做了 quark, 也是利用 os 自带的浏览器引擎. 目前仍然在开发早期.

  • react native macos 非跨平台, 只支持 macos. 截止 2018-05-20 仍然是实验性质的产品, 而且已经有半年没有 commit 了

  • MacGap 非跨平台, 只支持 macos. 利用 webkitview 来展示页面.

  • nodejs + pkg + browser 用pkg打包 nodejs 服务, 然后用浏览器访问这个服务. pkg 可以换成 node-packer 或者 nexe

  • proton 用类 react 的语法写桌面应用, 其实是一个 libui 的 js 绑定. libui 本身截至 2018-05-20, 仍然是 Alpha 3.5 的状态, 但是开发很活跃.

  • vuido 用 vue 的语法写桌面应用, 这也是 libui 的一个绑定.

  • sciter 可嵌入 html/css/script 的超小引擎(<10M), 非开源产品, 但是有一些公司在用, 比如赛门铁克.

  • qt c++ 的 GUI 框架.

  • yue C++ 写的 gui 库, 有 js 的绑定. 但是不确定是否 css 写界面. 用它写出来的 slack 才 10M 不到.