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

Posted

技术标签:

【中文标题】与 Electron 相比,Chrome 应用程序的优缺点是啥?【英文标题】:What are the pros and cons of Chrome Apps compared to Electron?与 Electron 相比,Chrome 应用程序的优缺点是什么? 【发布时间】:2016-02-27 22:48:38 【问题描述】:

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

我需要的一切似乎都可以通过 Chrome 应用程序实现,但围绕 Electron/NW.js 有很大的炒作。电子的优势是什么?是不是 Node 包太多?

我认为功能差异对我来说很清楚。

优缺点如下:

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

2016 年 8 月 20 日更新:

正如 Eduardo 指出的那样,Google announced 他们将停止在除 ChromeOS 之外的所有平台上使用 Chrome 应用程序。所以我认为这个问题的答案现在很明显了。

对于所有开发了 Chrome 应用程序并有兴趣将其迁移到网络的人,这里有一份来自 Google 的指南:https://developers.chrome.com/apps/migration

或者,正如 Google 也提到的,您将其迁移到 Electron 或 NW.js。

【问题讨论】:

Chrome 应用程序需要浏览器才能运行,Electron / NW.js 捆绑所有内容,您会获得一个可执行文件,您的用户只需双击即可运行,无需 Chrome。爆米花时间就是这种程序的一个例子。 如果你选择不使用 chrome 应用,这里有一篇关于 Electron 和 NW.js 之间差异的有趣博文tangiblejs.com/posts/nw-js-and-electron-compared-2016-edition 【参考方案1】:

您可以完全比较电子和铬封装的应用程序。它们非常相似。对于他们两个,你都会得到:

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

以下是区别:

Electron 使用 node.js。因此,您可以导入许多 Chrome 应用程序中不易使用的模块。 分发,您可以使用电子自己打包和分发应用程序。对于 Chrome 应用,您可以通过 Chrome Webstore 分发它们。 环境。一个电子应用程序与它的完整环境一起打包。 Chrome 应用只是使用 Chrome 环境,因此它们更轻巧,但根据用户使用的 Chrome 版本,其行为可能会有所不同。 Chrome 应用程序要求用户安装 Chrome,而 Electron 不需要。 Electron 拥有更好的开发人员测试和调试工具。 Electron 是一个开源平台。 Chrome 应用程序也是基于多种开放技术构建的,但特别是分发由 Google 控制。 Electron 文档要好得多,尽管它是一个年轻得多的平台。 采用:有很多基于 Electron 构建的大型成功应用程序,例如 Visual Studio Code、GitHub 客户端、Slack。 Chrome 应用的发展势头从未如此强劲。 Chrome 应用可以紧密集成到 Google 云端硬盘中

2016 年 8 月 19 日更新:

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

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

【讨论】:

谢谢,这真的很有帮助!因此,我会选择 Electron。 @Xan 我找不到任何资源指向我们可以自托管 Chrome 应用程序。我无法验证这是否属实 嗯。我测试了它,似乎我的假设是错误的。撤回我的反对并删除原始评论。 我要补充一点,只有 Chrome 应用程序也会run on a Chromebook【参考方案2】:

我认为将电子和铬应用程序进行比较是不可能的。这取决于你的程序应该做什么。

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

第一眼看,electron 看起来像 chrome,因为 electron 的视图是基于 chrome 浏览器的。但是 electron 是一个完整的 node.js 环境,顶部有一个 chrome 视图。所以强大的功能不仅仅是洞察 chrome 部分。

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

使用 node 你可以先用命令行界面制作你的程序,然后你可以使用 electron 制作一个 gui。

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

所以我的电子专家:

超过 1.700.000 个模块通过 npm 可用 非常容易集成 jQuery、Angular、React... 先用CLI做程序,再做gui 与 github 完美搭配 非常好的桌面集成 提供 windows 安装程序

【讨论】:

您提到与 Electron 应用相关的 Chrome 应用非常适合 Google Drive 使用。是否有可能或者是否有任何特殊要求可以使 Electron 应用程序能够存储在 Google Drive 中和/或从 Google Drive 中启动(例如,在打包 Electron 应用程序时)?【参考方案3】:

我想谈谈 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 确实是你应该考虑的东西。

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

【讨论】:

以上是关于与 Electron 相比,Chrome 应用程序的优缺点是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Electron跨平台桌面级应用开发框架

Electron 支持的Chrome命令行开关

Electron与WEB桌面应用程序开发及其它

使用 Electron 为 Chrome OS 开发应用程序

大话Electron应用自动更新

在 Electron 中访问 MySQL 数据库