Упаковка узла.в JS веб-приложения в качестве обычного настольного приложения [закрыт]
Я искал немного, но не могу найти существующий инструмент для этого.
у меня есть узел.JS веб-сервер, который предназначен для работы на вашем собственном компьютере, который делает некоторые шикарные вещи для вас. Было бы довольно неприятно, если бы я мог дважды щелкнуть MySnazzyThing.app вместо установки nodejs и npm и запуска node mysnazzyapp.js в командной строке.
The .app исполняемый файл загрузит сервер узла и откроет простое собственное окно webkit, которое покажет, что обычно будет включено localhost:3000 если бы я работал в командной строке.
это родное приложение может затем, скажем, распространяться через Mac app store. И БАМ, узел.Яш настольное приложение.
существует ли такой инструмент? Или есть какие-то технические причины, по которым это не сработает, как я себе это представляю?
5 ответов:
вы можете сделать это с помощью AppJS:https://github.com/appjs/appjs
Вариант 1: электрон (Он же атом-оболочка)
Это оболочка, которую использует редактор атомов github. Это очень похоже на node-webkit, хотя сначала он запустит скрипт, и вам нужно создать представление/окно для пользователя. Есть и другие незначительные отличия, но на это стоит обратить внимание.
Вариант 2: NW.js ранее node-webkit
суть в том, что он в основном расширяет JS-движок для вас, чтобы написать веб-интерфейс приложение поддерживает расширенную объектную модель узла и модули... затем вы упаковываете свой пакет.начните с JSON.html модули и js файлы в zip (с помощью .расширение nw) и запустить его с помощью nw(.исполняемый. ). есть Windows, mac и linux сборки доступны.
Вариант 3: тяга (Узел Адаптера)
Это действительно потерять привязку вокруг webkit / chrome с каналом ipc для запуска приложения. Вы можете использовать либо канал сообщений, либо вы можно написать приложение как более традиционное приложение на стороне сервера в узле и управлять запуском окна. Что вполне может вам подойти.
тяга имеет привязки для нескольких языков. Я поставил это впереди MacGapNode только потому, что я предпочитаю кросс-платформенные варианты в первую очередь.
Вариант 4: MacGapNode (только OSX)
MacGap с интеграцией узлов (кажется, становится устаревшим)
В Сторону Услуг...
Я не могу говорить для OSX на этом .Приложение, но вполне возможно создать фоновую службу установки в NodeJS и ссылку на "локальный" сайт на рабочем столе. Большинство браузеров имеют возможность не показывать все возможности (я знаю, что Firefox в частности).
Я знаю, что ваш вопрос относится к OSX в частности, но в windows вы можете использовать NSSM для запуска чего-либо в качестве службы, и я использовал его для служб на основе NodeJS в windows. Я думаю, что некоторые другие варианты лучше в зависимости от вашего хотя должен.
удалено:
nexe- несвежий / не обслуживаетсяAppJS- заменено на DeskShellDeskShell- черствый, сайт в автономном режимеnode-webkit-переименован в NW.jsXULRunnerпроект застопорился, и чрезвычайно позади.
этот ответ копируется для нескольких вопросов, эти ссылки в основном для удобства обновления.
Я предлагаю заглянуть в Topcube, его цель- " дать разработчикам узлов способ иметь графический интерфейс рабочего стола для своих серверов узлов, используя HTML5 + CSS3 в качестве платформы GUI." Topcube на github.
В настоящее время существует множество способов для достижения этой цели.
явным победителем в пространстве упаковки приложения node + html5 в настоящее время является Electron (используется Atom, VSCode, Slack, Discord и т. д.).
вы также можете использовать любой другой язык, упакованный как приложение (используя инструменты для этих языков / стеков), и проверить установку узла, запустить сценарий "сервер" с узлом, а затем Запустить браузер по умолчанию (или какой-либо компонент веб-представления, некоторыми другими средствами), наконец, установить расположение к службе узла. Это очень легкий и эффективный метод, однако он не так хорошо интегрирован с ОС, как такое решение, как Electron.
основным конкурентом электрона здесь является NW.js. Насколько я могу судить, главная особенность в том, что NW.js имеет, что электрон не (пока) является компиляцией/обфускацией. В то время как электрон делает автоматическое обновление легко.
вы не можете сделать это с помощью bash-скрипт? Я не знаю достаточно, чтобы предоставить детали, но это, вероятно, путь.
Comments