Chrome Apps与Electron相比有哪些优缺点?

时间:2015-11-25 08:24:00

标签: javascript google-chrome google-chrome-app electron

我想用javascript(使用网络技术)编写桌面应用程序,并查找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所指出的,Google announced他们将停止所有平台的Chrome应用程序,而不是ChromeOS。所以我认为这个问题的答案现在很明显。

对于开发Chrome应用并且有兴趣将其迁移到网络的所有人来说,这是Google的指南:https://developers.chrome.com/apps/migration

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

3 个答案:

答案 0 :(得分:23)

您可以完全比较电子和Chrome打包应用。它们非常相似。对于他们两个,你得到:

  • 使用Web Technologies开发桌面应用程序
  • 应用程序在Chrome上运行
  • 自动更新。虽然在Chrome中你可以免费获得它,但对于Electron你需要做一些工作。
  • 操作系统集成 - 两者都比普通网站更好地集成了操作系统,但是Electron支持更广泛的操作系统集成。
  • 离线或在线工作。
  • 两者都适用于Linux,OSX和Windows。 Chrome网络应用程序也适用于Chromebook。

以下是不同之处:

  • Electron使用node.js.因此,您可以导入Chrome应用中不易获得的许多模块。
  • 分发,用电子打包并自行分发应用程序。使用Chrome应用,您可以通过Chrome网上商店分发它们。
  • 环境。电子应用程序包装完整的环境。 Chrome应用仅使用Chrome环境,因此它们更轻,但对于不同的用户可能会有不同的行为,具体取决于他们使用的Chrome版本。
  • Chrome应用需要用户安装Chrome,Electron不会。
  • Electron拥有更好的开发工具,可用于测试和调试。
  • Electron是一个开源平台。 Chrome应用程序也是基于多种开放技术构建的,但特别是由Google控制分发。
  • 即使电子文档是一个更年轻的平台,它也要好得多。
  • 采用:在Electron之上构建了很多大而成功的应用程序,例如Visual Studio Code,GitHub客户端,Slack。 Chrome应用程序从未获得过多的动力。
  • Chrome应用可以紧密集成到Google云端硬盘

更新2016-08-19:

Google最近在ChromeOS以外的任何平台上都弃用了Chrome应用。所以我说它不再是一个有效的选择。

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

答案 1 :(得分:2)

我认为不太可能比较电子和Chrome应用程序。这取决于你的程序应该做什么。

那么,我什么时候应该使用电子?

首先看电子看起来像铬,因为电子的视图是基于Chrome浏览器。但是电子是一个完整的node.js环境,顶部有一个镀铬视图。所以强大的功能不仅仅是洞察铬部分。

就像你提到的那样,有很多节点模块(超过200.000),你可以很容易地安装或更新。您还应该查看node.js api(https://nodejs.org/api/)。所有这些都可以让您编写完全集成在桌面上的复杂应用程序。几乎所有问题都有一些可用的模块。

使用节点,您可以先使用命令行界面制作程序,然后可以使用电子制作gui。

所以,当你已经有一个用JS编写的在线应用程序时,也许chrome-app更好。 Chrome应用非常适合谷歌驱动器使用。或者如果你想在chrome-os中进行完全集成。

所以我的电子专业人士:

  • 超过200,000个模块,超过npm可用
    • 非常容易集成jQuery,Angular,React,...
  • 首先使用CLI制作程序然后制作gui
  • 与github完美配合
  • 非常好的桌面集成
  • 提供Windows安装程序

答案 2 :(得分:1)

我想参加Electron vs nw.js。

我有一个非常受欢迎的Chrome应用,无法转换为网络应用或扩展,因为它使用了多个不受支持的API,最明显的是chrome.fileSystem API。

该应用程序仍然只能在Chrome的网上商店访问,因为应用程序支持将在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是你应该考虑的事情。

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