Node-Webkit vs Electron

我们计划建立跨平台的桌面应用程序。我们发现 Node-Webkit对我们来说是一个完美的选择。但是 GitHub 开发了自己的框架 电子,而不是使用 Node-Webkit。

他们之间有什么区别?

41327 次浏览

电子有一个 呼叫解释与 nwjs的差异。

和 NW.js 一样,Electron 提供了一个编写桌面应用程序的平台 这两个平台使开发者能够利用 HTML、 JavaScript 和 Node.js 表面上看起来非常相似。

然而,这两个项目之间存在着根本的区别 使得电子成为一个完全独立于 NW.js 的产品。

  1. 在 NW.js 中,应用程序的主要入口点是 应用程序可以是一个 HTML 网页 给定浏览器窗口中的入口点。

在 Electron 中,入口点始终是一个 JavaScript 脚本 直接提供 URL,则手动创建浏览器窗口,然后 使用 API 加载 HTML 文件。您还需要监听窗口 事件来决定何时退出应用程序。

Electron 的工作方式更像 Node.js 运行时 较低的级别,以便您可以使用它进行浏览器测试,而不是 PhantomJS.

  1. NW.js 中的节点集成,网页中的节点集成 需要修补铬的工作,而在电子,我们选择了一个 以不同的方式将 libuv 循环与每个平台的消息集成起来 循环以避免黑客 Chromium。请参阅 node_bindings代码了解如何 已经结束了。

  2. JavaScript 上下文如果你是一个有经验的 NW.js 用户,你 应该熟悉节点上下文和 Web 上下文的概念。 这些概念的产生是由于 NW.js 的实现方式。

通过使用 Node 的多上下文特性,Electron 没有引入 网页中新的 JavaScript 上下文。

注意: 自0.13以来,NW.js 可选地支持多上下文。

  1. Legacy Support NW.js 仍然提供了一个“遗留版本”来支持 它不接收安全更新。

鉴于硬件制造商,微软,Chromium 和 Node.js 甚至没有发布该系统的关键安全更新,我们 必须警告你,使用 WindowsXP 是非常不安全和彻底的 不负责任。

然而,我们明白,需求超出了我们的最狂野 想象力可能存在,所以如果你在寻找 运行在 Windows XP 上的电子产品,NW.js 的遗留版本可能是 适合你的。

  1. 特性在支持的数量上有许多不同 电子有一个更大的社区,更多的生产应用程序使用 以及 npm 上提供的大量用户界面模块。

例如,Electron 内置了对自动更新和 无数的工具,使创建安装程序更加容易。作为一个 例如,NW.js 支持更多的 Chrome. * API 开发 Chrome 应用程序。

当然,我们相信电子是更好的平台 使用 Web 技术构建的抛光生产应用程序(如 Visual Studio Code、 Slack 或者 Facebook Messenger) ,但是,我们希望 对我们的网络技术朋友是公平的。如果你有功能需要 电子不会相遇,你可以试试 NW.js。

请记住,这可能是有偏见的-这是从电子的维基页面。

电子不会引入

网页中新的 JavaScript 上下文。

源代码保护

Electron 正在将其应用程序打包为 Asar,其中包含应用程序未受保护的源代码。这使得应用程序1可以在用户不知情的情况下提取应用程序2并注入易受攻击的脚本。您可以签出 这个项目在 GitHub 上看到一个如何操作 Slack 应用程序的例子作为示例。至于现在,电子团队没有任何计划来实现对源代码保护的支持

NW.js 内置支持将源代码编译为受保护的二进制文件