Как Узел Webkit, Electron предоставляет платформу для написания настольных приложений с помощью JavaScript и HTML, и имеет интеграцию Node до предоставить доступ к системе низкого уровня на веб-страницах.
Но есть и принципиальные различия между этими двумя проектами , которые делают Electron совершенно отдельный продукт от узла-Webkit:
1 - Вступление применения
В NW.js главной точки входа приложение - это веб-страница или сценарий JS . Вы указываете файл html или js в package.json, и это , открытое в окне браузера в качестве главного окна приложения (в случае точки входа html) или выполняется сценарий.
В то время как в элементе Electron точка входа представляет собой скрипт JavaScript, а не , предоставляющий URL-адрес напрямую, необходимо вручную создать окно браузера и загрузить в него файл html с соответствующим API. Вам также необходимо: слушать события окна, чтобы решить, когда выйти из приложения.
Так Electron работает больше как во время выполнения Node.js, и API-интерфейсы являются более низкий уровень , вы можете также использовать Electron для веб-целей тестирования как phantomjs,
2 - Построить систему
Для того, во избежание сложности построения всего Chromium, Electron использует libchromiumcontent для доступа к API контента Chromium, libchromiumcontent - это отдельная разделяемая библиотека, которая включает в себя модуль Chromium Content и все его зависимости. Поэтому пользователям не нужна мощная машина для сборки атомной оболочки.
3 - узел интеграции
В узле Webkit, интеграция узлов в веб-страницы требует исправления Chromium работать, в то время как в Electron мы выбрали другой способ интегрировать цикл libuv в цикл обработки сообщений для каждой платформы, чтобы избежать взлома Chromium, см. код node_bindings о том, как это было сделано.
4 - Multi-контекст
Если вы являетесь опытным пользователем Node-Webkit, вы должны быть знакомы с понятием контекста узла и веб-контекста, эти понятия были изобретен из-за того, как узел-Webkit был реализован.
С помощью многоконтекстной функции Node Electron не вводит новый контекст JavaScript на веб-страницах.
** E ** lectron vs ** N ** W.js (апрель'17). Вопросы, относящиеся к стопку [E: 2,630] (http://stackoverflow.com/questions/tagged/electron) vs [N: 269] (http://stackoverflow.com/questions/tagged/nw.js), Github pull запросы [E: 102] (https://github.com/electron/electron/pulse/monthly) vs [N: 6] (https://github.com/nwjs/nw.js/pulse/monthly), приложения, созданные на [Electron] (https://electron.atom.io/apps/) vs [NW.js] (https://github.com/nwjs/nw.js/wiki/List-of-apps-and -companies-using-nw.js) и, наконец, [Google Trends] (https://trends.google.com/trends/explore?q=nwjs,electron%20js). Кажется, что Electron является лучшим выбором. – wildloop