与Electron相比,Chrome应用程序的优缺点是什么?

25

我想用JavaScript(使用Web技术)编写一个桌面应用程序,并寻找Electron和Chrome应用之间的比较。

在Chrome应用中似乎可以实现我需要的一切,但是Electron / NW.js周围有很大的热潮。Electron有哪些优势?这是因为有大量的Node包吗?

我认为功能上的差异对我来说是清楚的。

像以下的优缺点:

+ Chrome Apps can run on Chrome OS  
- Chrome Apps needs an installed Chrome Browser
...

更新于2016-08-20:

正如Eduardo所指出的那样,谷歌宣布他们将停止除ChromeOS以外所有平台的Chrome应用程序。因此,我认为现在这个问题的答案是显而易见的。

如果您开发了Chrome应用程序并有意将其迁移到网络上,这里是谷歌提供的指南:https://developers.chrome.com/apps/migration

或者,正如Google也提到的,您可以将其迁移到ElectronNW.js


1
Chrome应用需要浏览器才能运行,而Electron / NW.js则将所有内容捆绑在一起,您可以获得一个可执行文件,用户只需双击即可运行,无需Chrome。这样的程序示例是流行的影视播放软件Popcorn Time。 - Mjh
如果您选择不使用 Chrome 应用程序,则以下是一篇有趣的博客文章,介绍 Electron 和 NW.js 之间的区别。http://tangiblejs.com/posts/nw-js-and-electron-compared-2016-edition - Albert James Teddy
3个回答

24
你可以完全比较Electron和Chrome打包应用程序。它们非常相似。对于它们两者,您都会获得以下内容:
  • 使用Web技术开发桌面应用程序
  • 应用程序在Chrome上运行
  • 自动更新。虽然在Chrome中您可以免费获取它,但对于Electron,您需要做一些工作。
  • OS集成-与普通网站相比,两者都具有更好的OS集成,但是Electron支持更广泛的OS集成。
  • 离线或在线工作。
  • 两者均可在Linux、OSX和Windows上使用。 Chrome Web应用程序也适用于Chromebooks。

以下是区别:

  • Electron使用node.js。因此,您可以导入在Chrome应用程序中不易获得的许多模块。
  • 分发,使用electron,您可以自己打包和分发应用程序。使用Chrome应用程序,您可以通过Chrome Webstore进行分发。
  • 环境。Electron应用程序随其完整环境一起打包。 Chrome应用程序仅使用Chrome环境,因此它们更轻,但可能因用户使用的Chrome版本而有所不同。
  • Chrome应用程序需要用户安装Chrome,而Electron则不需要。
  • Electron提供了更好的测试和调试开发工具。
  • Electron是一个开源平台。 Chrome应用程序也是建立在多个开放技术的基础上,但特别是分发受Google控制。
  • 即使它是一个更年轻的平台,Electron文档也好得多。
  • 采用情况:有很多基于Electron构建的大型成功应用程序,例如Visual Studio Code、GitHub客户端、Slack。 Chrome应用程序从未获得过多的动力。
  • Chrome应用程序可以紧密集成到Google Drive中

更新2016-08-19:

看来Google最近废弃了除ChromeOS以外的任何平台上的Chrome应用程序。因此,我认为这不再是有效的选择。

http://blog.chromium.org/2016/08/from-chrome-apps-to-web.html


谢谢,这真的很有帮助!因此,我会选择Electron。 - miu
@Xan 我找不到任何资源表明您可以自行托管Chrome应用程序。我无法验证这是否属实。 - Eduardo
嗯,我测试了一下,似乎我的假设是错误的。撤回我的反对意见并删除原始评论。 - Xan
我想补充一点,只有Chrome应用程序才能在Chromebook上运行。了解更多关于应用程序的信息 - Udo G

3
我认为比较Electron和Chrome应用程序并不是真正可能的。它取决于你的程序需要做什么。
那么,什么时候应该使用Electron?
乍一看,Electron看起来像Chrome,因为Electron的视图基于Chrome浏览器。但是,Electron是一个完整的node.js环境,顶部有一个Chrome视图。因此,强大的功能不仅仅在Chrome部分内部。
就像您提到的那样,有很多节点模块(超过1,700,000个),您可以非常轻松地安装或更新它们。您还应该查看node.js API(https://nodejs.org/api/)。所有这些都允许您编写完全集成在桌面上的复杂应用程序。几乎所有问题都有一些可用的模块。
使用node,您可以首先使用命令行界面制作程序,然后可以使用Electron制作GUI。
因此,如果您已经拥有一个用JS编写的在线应用程序,可能Chrome应用程序更好。 Chrome应用程序非常适合使用Google驱动器。或者,如果您想在Chrome OS中进行完全集成。
因此,我对Electron的优点:
  • 超过1,700,000个npm模块可用
    • 非常容易集成jQuery、Angular、React等
  • 先使用CLI制作程序,然后再制作GUI
  • 与github完美配合
  • 非常好的桌面集成
  • 提供Windows安装程序

你提到了Chrome应用程序在与Electron应用程序相关的Google Drive使用方面非常出色。是否有可能或者是否有任何特殊要求可以使Electron应用程序存储和/或从Google Drive启动(例如,在打包Electron应用程序时)? - FlipOne

1

我想就Electron和nw.js发表一下意见。

我有一个非常受欢迎的Chrome应用程序,由于使用了几个不支持的API(尤其是chrome.fileSystem API),无法转换为Web应用程序或扩展程序。

该应用程序仍然只能在Chrome Web商店上访问,因为应用程序支持将在2018年初之前被废弃。尽管如此,我已经花费了很多时间思考和决定如何应对Google的举动。

到目前为止,我主要关注的是Electron,因为它似乎得到了最多的关注,但我最近发现nw.js实际上可以直接运行Chrome应用程序,因为它实现了所有Chrome的API,而Electron只实现了其中的一部分。

只需像这样运行您的Chrome应用程序:

/path/to/nw.exe <folder path of the manifest.json file>

除了一些像是我的应用程序和助手扩展之间的互相通信之类的事情,即使它是一个具有近3000行JS代码的高级应用程序,一切都按预期工作,没有任何更改。

对于新的跨平台应用程序,Electron可能是更好的选择(实际上我不知道),但对于现有的Chrome应用程序,我会说nw.js确实是您应该考虑的东西。

希望这可以帮助处于同样位置的人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接