Szukałem trochę, ale nie mogę znaleźć istniejącego narzędzia do tego.
Mam serwer sieciowy node.js, który został zaprojektowany do działania na Twoim komputerze, który robi za Ciebie niesamowite rzeczy. Byłoby MySnazzyThing.app
wspaniale, gdybym mógł kliknąć dwukrotnie zamiast instalować nodejs i npm i uruchamiać je node mysnazzyapp.js
w wierszu poleceń.
Plik .app
wykonywalny zbuforowałby serwer węzła i otworzył proste natywne okno zestawu webkit, które pokazywałoby, co normalnie byłoby włączone, localhost:3000
gdybym był uruchomiony w wierszu poleceń.
Ta natywna aplikacja mogłaby być następnie, powiedzmy, dystrybuowana za pośrednictwem sklepu z aplikacjami na komputery Mac. I bam, aplikacja komputerowa node.js.
Czy istnieje takie narzędzie? A może są jakieś techniczne powody, dla których to nie zadziała, tak jak to sobie wyobrażam?
źródło
Opcja 1: elektron (inaczej powłoka atomu)
To jest powłoka używana przez edytor Atom na githubie. Jest bardzo podobny do node-webkit, chociaż najpierw uruchomi skrypt i musisz utworzyć widok / okno dla użytkownika. Jest kilka innych drobnych różnic, ale warto się im przyjrzeć.
Opcja 2: NW.js dawniej node-webkit
Istota jest taka, że w zasadzie rozszerza on silnik JS, abyś mógł napisać aplikację internetową obsługującą rozszerzony model obiektowy i moduły node ... następnie pakujesz moduły i pliki package.json start.html i js do pliku zip (z .nw) i uruchom go za pomocą nw (.exe). Dostępne są wersje dla systemów Windows, Mac i Linux.
Opcja 3: powłoka Carlo chrom (ium) z Node.
Umożliwi to uruchomienie lokalnie zainstalowanej przeglądarki Chrome jako powłoki, która może łączyć się z lokalnie działającą aplikacją serwera. Wymaga lokalnego chromu, ale jest bardzo zbliżony do tego, o co proszono.
Opcja 4: MacGapNode (tylko OSX)
MacGap z integracją Node (wydaje się być nieaktualny)
Poza tym: Usługi ...
Nie mogę mówić w imieniu OSX jako .App, ale byłoby możliwe utworzenie instalacji usługi w tle w NodeJS i łącza do „lokalnej” witryny na pulpicie. Większość przeglądarek ma opcję, aby nie wyświetlać wszystkich funkcji (wiem, że w szczególności robi to Firefox).
Wiem, że twoje pytanie dotyczy w szczególności OSX, ale w Windows możesz użyć NSSM do uruchomienia 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.
Oddalony:
nexe- nieaktualny / niekonserwowanyAppJS- zastąpiony DeskShellDeskShell- nieaktualna, strona w trybie offlinenode-webkit - zmieniononazwę na NW.jsProjektXULRunnerutknął w martwym punkcie i został znacznie opóźniony.Ciąg ( adapter węzła )- przestarzały / nieaktualnyTa odpowiedź jest kopiowana dla wielu pytań, te odniesienia są głównie dla wygody aktualizacji.
źródło
Proponuję przyjrzeć się Topcube, jego celem jest „Dać programistom węzłów sposób na posiadanie graficznego interfejsu użytkownika na ich serwerach węzłów przy użyciu HTML5 + CSS3 jako platformy GUI”. Topcube na github .
źródło
Obecnie istnieje wiele sposobów, aby to osiągnąć.
Wyraźnym zwycięzcą w zakresie 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 „serwerowy” z węzłem, a następnie uruchomić domyślną przeglądarkę (lub jakiś komponent widoku internetowego, w inny sposób), ostatecznie ustaw lokalizację usługi węzła. Jest to bardzo lekka i wydajna metoda, jednak nie tak dobrze zintegrowana z systemem operacyjnym, jak rozwiązanie takie jak Electron.
Głównym konkurentem Electron jest tutaj NW.js. O ile wiem, główną cechą NW.js, której Electron (jeszcze) nie jest, jest kompilacja / zaciemnianie. Podczas gdy Electron ułatwia automatyczne aktualizacje.
https://electron.atom.io/ https://nwjs.io/
źródło