Pakowanie węzła.js webapp jako normalna aplikacja desktopowa [zamknięta]

Szukałem trochę, ale nie mogę znaleźć istniejącego narzędzia do tego.

Mam węzeł.js web server, który jest przeznaczony do pracy na własnym komputerze, który robi kilka snazzy rzeczy dla Ciebie. Byłoby całkiem pożyteczne, gdybym mógł dwukrotnie kliknąć MySnazzyThing.app zamiast instalować nodejs, a npm i uruchamiać node mysnazzyapp.js w wierszu poleceń.

Plik wykonywalny .app uruchomi serwer węzła i otworzy proste, natywne okno webkit, które pokaże, co normalnie byłoby na localhost:3000, gdybym uruchomił w wierszu poleceń.

Ta natywna aplikacja może być następnie, powiedzmy, rozpowszechniana za pośrednictwem mac app store. I bam, węzeł.aplikacja js desktop.

Czy istnieje takie narzędzie? A może są jakieś techniczne powody, że to nie działa tak, jak sobie wyobrażam?
Author: Alex Wayne, 2011-07-26

5 answers

Możesz to osiągnąć za pomocą AppJS: https://github.com/appjs/appjs

 21
Author: Motin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-18 05:19:59

Opcja 1: elektron (aka ATOM-powłoka)

Jest to powłoka, której używa edytor Atom Githuba. Jest bardzo podobny do node-webkit, chociaż najpierw uruchomi skrypt i musisz utworzyć widok / okno dla użytkownika. Są też inne drobne różnice, ale warto na nie spojrzeć.


Wariant 2: NW.JS dawniej node-webkit

Gist polega na tym, że zasadniczo rozszerza silnik JS, abyś mógł napisać aplikację internetową obsługującą Rozszerzony obiekt node model i moduły... następnie pakujesz swoją paczkę.JSON start.Moduły html i pliki js w zip (z .NW extension) i uruchomić go z nw(.exe).. dostępne są wersje Windows, mac i linux.


Opcja 3: Ciąg (Node Adapter )

Jest to naprawdę stracone powiązanie wokół webkit / chrome z kanałem ipc do uruchamiania aplikacji. Możesz użyć kanału wiadomości lub napisać aplikację jako bardziej tradycyjną aplikację po stronie serwera w węźle, i sterować uruchomieniem Okna. Co może cię dobrze ugościć.

Thrust ma powiązania dla wielu języków. Postawiłem to przed MacGapNode tylko dlatego, że faworyzuję opcje wieloplatformowe.


Opcja 4: MacGapNode (tylko OSX)

MacGap z integracją węzłów (wydaje się być coraz nieświeży)


Na Bok: Usługi...

Nie mogę się wypowiadać za OSX w tej kwestii .Aplikacji, ale równie dobrze można stworzyć usługę w tle instalowaną w NodeJS i link do "lokalnej" strony na pulpicie. Większość przeglądarek ma opcję, aby nie pokazywać wszystkich funkcji(wiem, że firefox w szczególności robi).

Wiem, że twoje pytanie dotyczy w szczególności OSX, ale w windows możesz używać NSSM do uruchamiania czegokolwiek jako usługi, a ja używałem go do usług opartych na NodeJS w windows. Myślę, że niektóre z powyższych opcji są lepsze w zależności od twoich potrzeb.


Usunięty:


Ta odpowiedź jest kopiowana dla wielu pytań, te odniesienia są głównie dla wygody aktualizacji.

 89
Author: Tracker1,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:16:29

Proponuję spojrzeć na Topcube, jego celem jest "dać deweloperom węzła sposób na pulpit GUI do swoich serwerów węzłów przy użyciu HTML5 + CSS3 jako platformy GUI."Topcube na GitHubie .

 8
Author: Brian Heese,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-29 23:28:37

Obecnie istnieje wiele sposobów, aby to osiągnąć.

Wyraźnym zwycięzcą w przestrzeni pakowania aplikacji node + html5 jest obecnie Electron (używany przez Atom, VSCode, Slack, Discord, itp.).

Możesz również użyć dowolnego innego języka spakowanego jako aplikacja( używając narzędzi dla tych języków / stosów) i sprawdzić instalację węzła, uruchomić skrypt "serwer" z węzłem, a następnie uruchomić domyślną przeglądarkę( lub komponent widoku sieci web, w inny sposób), na koniec ustawić lokalizację na usługa węzła. Jest to bardzo lekka i wydajna metoda, jednak nie tak dobrze zintegrowana z OS jak rozwiązanie takie jak Electron.

Głównym konkurentem elektronu jest NW.js. O ile mogę powiedzieć, główną cechą, że NW.js ma, że elektron nie jest (jeszcze) kompilacją/zaciemnianiem. Podczas gdy Elektron ułatwia automatyczne aktualizacje.

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

 -1
Author: Devin McKeon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-24 03:36:39

Nie możesz tego zrobić skryptem Basha? Nie wiem na tyle, by podać szczegóły, ale pewnie tak trzeba.

 -4
Author: Chris Kitching,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-02 00:02:53