Узел-Webkit vs Electron [закрыто]
мы планируем построить кросс-платформенное настольное приложение. Мы нашли, что Node-Webkit является идеальным выбором для нас. Но GitHub разработал свою собственную структуру под названием Электрон вместо использования Node-Webkit.
в чем разница между ними?
1 ответ:
У Electron есть страница, объясняющая различия с node-webkit:
https://github.com/atom/electron/blob/master/docs/development/atom-shell-vs-node-webkit.md
Как Node-Webkit, Electron предоставляет платформу для записи рабочего стола приложения с JavaScript и HTML, а также имеет интеграцию узлов предоставьте доступ к низкоуровневой системе на веб-страницах.
но есть также фундаментальные различия между ними проекты что делает Electron совершенно отдельным продуктом от Node-Webkit:
1-запись заявки
на северо-западе.js основной точкой входа приложения является веб-страница или JS скрипт. Вы указываете html или js-файл в пакете.json и это открывается в окне браузера в качестве главного окна приложения (в случае, если точки входа html) или выполняется скрипт.
в то время как в Electron точкой входа является скрипт JavaScript, вместо этого из предоставив URL напрямую, вам необходимо вручную создать окно браузера и загрузите в него html-файл с соответствующим API. Вам также необходимо прослушайте события окна, чтобы решить, когда выйти из приложения.
таким образом, Электрон работает больше как узел.во время выполнения JS и API-интерфейсы являются более низкой уровень, вы можете также использовать Электрон для цели испытания паутины как phantomjs,
2-построить систему
для того чтобы избежать сложностей строительства в целом Хром, Electron использует libchromiumcontent для доступа к API контента Chromium, libchromiumcontent-это одна общая библиотека, которая включает в себя Модуль содержания хрома и все его зависимости. Так что пользователям не нужно мощная машина для сборки атома-оболочки.
3 - узел интеграции
в Node-Webkit интеграция узлов в веб-страницы требует исправления Хром для работы, в то время как в Электроне мы выбрали другой способ интегрируйте цикл libuv к каждой платформе цикл сообщений, чтобы избежать взлома Chromium, см. код node_bindings для того, как это было сделано.
4 - мульти-контекст
Если вы опытный пользователь Node-Webkit, вы должны быть знакомы с понятием контекста узла и веб-контекста эти понятия были придумано из-за того, как был реализован Node-Webkit.
с помощью мульти-контекстный элемент узла, Электрон не вводит новый контекст JavaScript в web страницы.
защита исходного кода
Электрон упаковывает свои применения с Асар, который содержит незащищенный исходный код приложения. Это позволяет приложению 1 извлекать приложение 2 и внедрять уязвимые сценарии без ведома пользователя. Вы можете оформить заказ этот проект на GitHub, чтобы увидеть пример того, как манипулировать Slack app для примера. А пока ... , команда Electron не планирует реализовывать поддержку защиты исходного кода.
NW.js и встроенная поддержка для компиляции исходного кода в защищенные файлы.
Comments