Я немного искал, но не могу найти для этого существующий инструмент.
У меня есть веб-сервер node.js, предназначенный для работы на вашем собственном компьютере, который делает за вас несколько интересных вещей. Было бы неплохо, если бы я мог дважды щелкнуть MySnazzyThing.app
вместо установки nodejs и npm и запуска node mysnazzyapp.js
в командной строке.
.app
Исполняемый файл будет намотать на сервере узла и открыть простое родное окно WebKit , который показал бы , что бы нормально быть , localhost:3000
если я управлял в командной строке.
Это собственное приложение затем можно было бы распространять, скажем, через магазин приложений Mac. И бац, настольное приложение node.js.
Есть ли такой инструмент? Или есть какие-то технические причины, по которым это не сработает, как я себе представляю?
источник
Вариант 1: электрон (он же атом-оболочка)
Это оболочка, которую использует редактор Atom на github. Он очень похож на node-webkit, хотя сначала запускает скрипт, и вам нужно создать представление / окно для пользователя. Есть и другие незначительные отличия, но на них стоит обратить внимание.
Вариант 2: NW.js ранее node-webkit
Суть в том, что он в основном расширяет движок JS, чтобы вы могли написать веб-приложение, поддерживающее расширенную объектную модель узла и модули ... затем вы упаковываете свои модули package.json start.html и файлы js в zip (с .nw extension) и запустите его с помощью nw (.exe) .. доступны сборки для windows, mac и linux.
Вариант 3: оболочка Carlo chrom (ium) из Node.
Это позволит вам запустить локально установленный Chrome в качестве оболочки, которая может подключаться к локально запущенному серверному приложению. Требуется местный хром, но он очень близок к тому, о чем просили.
Вариант 4: MacGapNode (только OSX)
MacGap с интеграцией узлов (похоже, устаревает)
В сторону: Услуги ...
Я не могу говорить об OSX как о .App, но вполне возможно создать фоновую установку службы в NodeJS и ссылку на «локальный» сайт на рабочем столе. В большинстве браузеров есть возможность не отображать все функции (в частности, я знаю, что это делает Firefox).
Я знаю, что ваш вопрос касается, в частности, OSX, но в Windows вы можете использовать NSSM для запуска чего-либо в качестве службы, и я использовал его для служб на основе NodeJS в Windows. Я думаю, что некоторые из других вариантов выше, в зависимости от ваших потребностей.
Удалено:
nexe- устаревший / неподдерживаемыйAppJS- заменен DeskShellDeskShell- устаревший, сайт не в сетиnode-webkit -переименован в NW.jsПроектXULRunnerзастопорился и сильно отстал.Thrust ( Node Adapter )- устарел / устарелЭтот ответ скопирован для нескольких вопросов, эти ссылки в основном предназначены для удобства обновления.
источник
Я предлагаю изучить Topcube, его цель - «дать разработчикам узлов способ иметь графический интерфейс рабочего стола для своих серверов узлов, используя HTML5 + CSS3 в качестве платформы графического интерфейса». Topcube на github .
источник
В настоящее время существует множество способов добиться этого.
Явным победителем в области упаковки приложения node + html5 в настоящее время является Electron (используется Atom, VSCode, Slack, Discord и т. Д.).
Вы также можете использовать любой другой язык, упакованный как приложение (с помощью инструментов для этих языков / стека), и проверить установку узла, запустить «серверный» скрипт с помощью узла, затем запустить браузер по умолчанию (или какой-либо компонент веб-представления, с помощью некоторые другие средства), наконец, установите местоположение для службы узла. Это очень легкий и эффективный метод, однако он не так хорошо интегрирован с ОС, как такое решение, как Electron.
Основным конкурентом Electron здесь является NW.js. Насколько я могу судить, основная особенность NW.js, которой нет у Electron (пока), - это компиляция / обфускация. В то время как Electron упрощает автоматическое обновление.
https://electron.atom.io/ https://nwjs.io/
источник