NW.js,Brackets-Shell和Electron之间的功能区别是什么?

Sve*_*weg 151 html5 node-webkit brackets-shell electron

现在TideSDK已经死了,我一直在寻找替代的'包装器'来运行HTML/CSS/JS应用程序作为独立的桌面应用程序.到目前为止,我遇到的三个可行选项是NW.js(以前称为node-webkit),括号-hellElectron(以前称为atom-shell).

问题在于,在功能集,兼容性等方面似乎没有足够完整的三者之间的比较.我希望将其转化为关于(客观)差异的或多或少的规范线程.三,特别是关于:

  • 平台支持 ; 操作系统,依赖关系等
  • 语言功能支持,就HTML5,CSS3和JavaScript而言.想想"HTML5视频是否正常工作,如果可以,可以使用哪些编解码器?"
  • 非标准的额外功能,例如托盘图标,弹出通知和操作系统渲染的菜单栏.
  • 可扩展性 ; 例如.能够"插入"本机代码,与Node.js交谈,等等.
  • 建筑 ; 特别是影响开发人员日常使用的架构差异.
  • 调试 ; 包括开发工具,与常用工具的兼容性node-inspector等.
  • ... 等等.

在作为应用程序开发人员进行选择时,哪些客观的技术差异很重要?

Joh*_*ark 42

两个月前我做了类似的研究,最后我使用了node-webkit.node-webkit的最大好处是node.js和npm.npm的包管理非常好,节点已经完成了文件系统访问.

Brackets-shell看起来很有趣,但除了一个漂亮的IDE之外,我并没有真正得到使这个更好或更好的东西.他们非常清楚"支架 - 外壳仅供Brackets项目使用",这些尖叫声让我感到震惊.

https://github.com/adobe/brackets-shell#overview

Atom-shell似乎最近是活跃的,但它看起来很像括号,因为它们实际上是编写和编辑器/ IDE恰好附加到webkit运行时.它也建立在node.js之上.这个有一个缺点是难以在线搜索东西,而不会被提醒你的中学化学.

我真的不想要一个新的编辑器,而且大多数程序员已经拥有了他们的最爱.对于实际的应用程序开发,它们几乎一样,并且应该,因为它们都使用webkit.你基本上写了90-95%的网站,然后处理本机部分和一些配置.

这些都适用于所有这三个平台 - 在Windows,Mac和Linux语言支持上运行 - HTML5,CSS3和Javascript:因为它们运行javascript,您可以下载并运行您想要的几乎任何库/框架.

webkit的一大注意事项是编解码器支持.通常,您将遇到非免费视频编解码器的问题,除非您重建dll /以支持它们.例如,发货的node-webkit不会播放mp4视频.

  • 只是注意到GitHub说Electron总是不仅仅是文本编辑器的shell,["当我们开始时,我们的目标不仅仅是支持文本编辑器的需求.我们还想创建一个简单的框架,允许人们使用Web技术构建具有所有本机修剪的跨平台桌面应用程序."](http://blog.atom.io/2015/04/23/electron.html) (4认同)

Luk*_*ers 40

过去几天我一直在玩Atom-Shell,到目前为止我很喜欢它.

关于它的最好的部分是它由GitHub支持..这应该允许你长期适应平台,特别是如果它获得了大量的追随者.通过与StrongLoop的合同提供直接的Node.js改进也是可能的,StrongLoop是一个主要的Node.js贡献者(他们声称使用比任何其他公司更多的Node.js核心开发人员,甚至是Joyent).

我也发现开始时很舒服.我花了大约一天的时间来学习结构并获得第一个概念验证.很酷.


子弹点:

  • 平台支持: Windows,Linux,Mac OSX(更多信息在这里)
  • 语言功能支持: HTML5,CSS3,JS通过Chromium - 到目前为止,零问题,但我没有专门测试视频.
  • 原生功能:本机应用程序菜单,任务托盘支持,全局热键,协议处理程序支持(我到目前为止看到)
  • 可扩展性:优秀的Node.js集成,客户端和服务器都可以"需要"Node.js模块和本机.我也成功地测试了Bower库(包括jQuery).
  • 建筑:涵盖在其他方面,但总的来说它非常流畅.

更新(2014年11月25日): 我还没有找到任何官方容量的Atom-Shell用例,但是我用它来构建一些供我自己使用的小应用程序,最复杂的应用程序拉动我的时间从我的PM软件登录并创建Paypal发票.

我对该平台的看法仍然是积极的.这太棒了.

在我的发票应用程序上,我成功引入了Bootstrap 3的仪表板示例模板和一些节点模块(bluebird,Paypal SDK,Teamwork PM Client)来创建一个稍微复杂的应用程序.我花了几天时间做得很好.

我真的想不出有关Atom-Shell的任何负面评价,它坚实,稳定,快速,易于编码.我希望这可以帮助别人.


Rog*_*ang 22

除了完全支持Web标准外,NW.js还支持本地应用程序开发的非标准功能列表,包括:

在wiki中还有更多内容,包括菜单,托盘等.

  • 在Kiosk模式Roger上+1.我可以看到这是我将来会使用的功能.希望调试功能有所改进,所以我可以留在nw.js,但是现在我正在认真考虑切换到Atom Electron一段时间来测试水域.我发现nw.js中的调试有点缺乏. (3认同)

小智 10

我一直在使用括号shell一段时间了,以下是我的一些发现:

  • bracket-shell主要在括号IDE项目下开发为shell,但该项目可以运行任何Web应用程序.你只需要将它指向你自己的html页面.Clint Berry写了一篇关于这样做的优秀教程:http://clintberry.com/2013/html5-desktop-apps-with-brackets-shell/
  • 该项目由Adobe提供支持,并且有很多活动
  • 文档可能会更好

  • 平台支持它们支持Windows,Mac和Linux.还可以创建安装程序包.我只在Win和Mac上测试过,效果很好.

  • 功能支持 html5,css3,js.Html5视频不能开箱即用,但很容易启用(默认情况下,ffmpegsumo.dll不会复制到安装程序中,如果您更改脚本以复制它将起作用).
  • 本机功能菜单栏,'打开文件',文件系统访问.我没有使用任何这些,因为我需要的是与节点进程的通信.
  • 扩展性内置了nodejs,您可以从Web应用程序与节点进行通信.这样,您就可以使用node来访问文件系统等.
  • 体系结构该项目设置良好,在shell项目和在其中运行的自己的Web应用程序之间保持良好的分离.在您自己的应用程序中,提供了一个全局的appshell对象,使您可以访问括号功能(文件系统访问,与节点进程的通信,......).

  • 让我远离Brackes-shell的事情是他们自己的概述.https://github.com/adobe/brackets-shell"注意:括号shell只保留供Brackets项目使用.虽然有些人肯定已成功将其用作其他项目的app shell,但我们不知道为此提供任何官方支持,我们还没有做大量工作来使应用程序外壳易于重用.许多人可能会发现使用像node-webkit这样的项目更容易,因为设计更通用." (6认同)

Jar*_*eda 5

有一点需要注意(如果你关心的话),Electron官方不支持Windows Vista.Vista的市场份额大约介于OSX 10.9和10.10之间(两者都得到Electron的全力支持).直到2017年,微软仍然支持Vista.

NW.js在Vista以及OSX 10.9+中运行良好.NW.js适用于Ubuntu,Debian,Zorin,Manjaro,Arch以及其他大多数基于Debian的Linux操作系统.Electron已经拒绝公关在他们的平台上修复Ubuntu特定的错误.

NW.js也适用于XP.目前18%的市场仍然在XP上.因此,如果您的桌面应用程序更通用或者想要仍然可以访问XP上的后期采用者,那么您最好使用NW.js(0.14.7),因为Electron仅支持Win 7及更高版本.

如果您使用NW.js 0.12.3,您还可以支持OSX 10.6+以及基于Debian的Linux操作系统的非常旧版本,如Ubuntu和Win XP +.建议您仅针对那些遗留系统执行特殊构建,并将NW.js的较新版本用于较新的OS.