Упаковка веб-програми node.js як звичайний настільний додаток [закрито]


86

Я трохи шукав, але не можу знайти існуючий інструмент для цього.

У мене є веб-сервер node.js, призначений для роботи на вашому власному комп’ютері, який робить для вас якісь чудові речі. Було б досить приголомшливо, якби я міг двічі клацнути MySnazzyThing.appзамість того, щоб встановлювати nodejs та npm та запускати node mysnazzyapp.jsв командному рядку.

Виконавчий .appфайл змінить сервер вузлів і відкриє просте власне вікно webkit, яке покаже, що зазвичай localhost:3000працює, якщо я працюю в командному рядку.

Тоді цю рідну програму можна, скажімо, розповсюджувати через магазин програм Mac. І bam, настільний додаток node.js.

Чи існує такий інструмент? Або є якісь технічні причини, що це не спрацює, як я собі уявляю?

Відповіді:



90

Варіант 1: електрон (він же атомна оболонка)

Це оболонка, яку використовує редактор Atom github. Це дуже схоже на node-webkit, хоча спочатку він запускатиме сценарій, і вам доведеться створити для користувача перегляд / вікно. Є деякі інші незначні відмінності, але на них варто поглянути.


Варіант 2: NW.js, раніше раніше node-webkit

Суть полягає в тому, що він в основному розширює движок JS, щоб ви могли писати веб-програму, що підтримує розширену об’єктну модель і модулі ..., а потім ви пакуєте модулі package.json start.html та js-файли у zip-файл (із .nw) та запустіть його за допомогою nw (.exe) .. доступні збірки windows, mac та linux.


Варіант 3: оболонка Carlo chrom (ium) від Node.

Це дозволить вам запустити локально встановлений Chrome як оболонку, яка може підключатися до локально запущеного серверного додатка. Він вимагає місцевого хрому, але дуже близький до того, про що просили.


Варіант 4: MacGapNode (лише для OSX)

MacGap з інтеграцією Node (здається, застаріває)


Окрім: Послуги ...

Я не можу говорити за OSX з цього приводу як .App, але цілком можливо створити фонову службу встановлення в NodeJS і посилання на "локальний" сайт на робочому столі. У більшості браузерів є можливість не відображати всі функції (я знаю, що Firefox це робить).

Я знаю, що ваше питання стосується, зокрема, OSX, але у вікнах ви можете використовувати NSSM для запуску будь-чого як служби, і я використовував це для служб на базі NodeJS у вікнах. Я думаю, що деякі інші варіанти вище є кращими залежно від ваших потреб.


Видалено:

  • nexe - несвіжий / не підтримуваний
  • AppJS - замінено на DeskShell
  • DeskShell - застарілий, веб-сайт офлайн
  • node-webkit -перейменований на NW.js
  • Проект XULRunner застопорився і надзвичайно відстав.
  • Тяга ( адаптер вузла ) - застаріла / застаріла

Ця відповідь копіюється для кількох запитань, ці посилання в основному служать для зручності оновлення.


Для OSX та Linux github.com/crcn/nexe також виглядає як рішення.
robocat 12.03.13

Схоже, node-webkit є переможцем серед них. Велика база розробників, хороша документація, підтримка Intel.
Ден

gerty, дякую ... Я оновив свою відповідь, включивши nexe, а також зробив node-webkit першим місцем ... схоже, appjs може трохи затхнути.
Tracker1

Для замовлення OSX Macgap, щоб ви могли подати заявку в магазин додатків. У вузлі webkit відмовляють у використанні потенційно застарілого API у майбутньому.
Michael J. Calkins

Хм, тепер є ідея. Запустіть програму як сервер у фоновому режимі, а потім просто відкрийте для неї вікно браузера (наприклад, як я можу запустити браузер без віконної рамки або вкладок / адресного рядка ). Ви не отримуєте настільки великого контролю над вікном таким чином (наприклад, браузер обробляє елементи меню, такі як файл, редагування, перегляд тощо, і користувач все ще має доступ до таких речей, як друк, масштабування та вбудована сторінка браузера функції пошуку), але в основному не потрібні додаткові рамки.
Ajedi32

8

Я пропоную розглянути Topcube, його мета - "Надати розробникам вузлів можливість отримати графічний інтерфейс робочого столу для своїх серверів вузлів, використовуючи HTML5 + CSS3 як платформу графічного інтерфейсу". Topcube на github .


1
Здається, Topcube не підтримується набагато довше
Shamoon

Так, я пропоную поглянути на титан. Це не Node.js, а JS і крос-платформа для розробки ПК та мобільних додатків. appcelerator.com/products/…
Брайан Хіз,

Це титанове ланка згнило. Я припускаю, що це саме те, до чого ви маєте на увазі: docs.appcelerator.com/titanium/2.0/index.html Їх непрозорий, важкий для маркетингу веб-сайт, упевнений, ускладнює уявлення про їх продукт або турботу.
Grumdrig

Примітка: Деталі для робочого столу Titanium більше не розроблятимуться / не підтримуватимуться.
Шрі Кадімісетті

1
Розробкою титанового робочого столу зайнялася нова група розробників: tidesdk.org
Мотін

-1

В даний час існує безліч способів досягти цього.

Однозначним переможцем у просторі упаковки програми node + html5 в даний час є Electron (використовується Atom, VSCode, Slack, Discord тощо).

Ви також можете використовувати будь-яку іншу мову, упаковану як додаток (використовуючи інструменти для цих мов / стеків), і перевірити наявність вузла, запустити сценарій "сервер" із вузлом, а потім запустити браузер за замовчуванням (або якийсь компонент веб-перегляду, деякі інші засоби), нарешті, встановіть розташування для служби вузлів. Це дуже легкий та ефективний метод, однак не настільки інтегрований з ОС, як рішення на зразок Electron.

Основним конкурентом Electron тут є NW.js. Наскільки я можу зрозуміти, головною особливістю NW.js, яку Electron (поки) не має, є компіляція / затуманення. Поки Electron полегшує автоматичне оновлення.

https://electron.atom.io/ https://nwjs.io/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.