Ich habe ein bisschen gesucht, kann aber kein vorhandenes Tool dafür finden.
Ich habe einen node.js-Webserver, der auf Ihrem eigenen Computer ausgeführt werden kann und einige pfiffige Dinge für Sie erledigt. Es wäre ziemlich fantastisch, wenn ich doppelklicken könnte, MySnazzyThing.app
anstatt nodejs und npm zu installieren und in node mysnazzyapp.js
der Befehlszeile zu laufen .
Die .app
ausführbare Datei spoolt den Knotenserver auf und öffnet ein einfaches natives Webkit-Fenster, in dem angezeigt wird, was normalerweise aktiviert ist, localhost:3000
wenn ich in der Befehlszeile ausgeführt werde.
Diese native App könnte dann beispielsweise über den Mac App Store verteilt werden. Und bam, eine Desktop-App von node.js.
Gibt es ein solches Tool? Oder gibt es technische Gründe, warum dies nicht so funktioniert, wie ich es mir vorstelle?
quelle
Option 1: Elektron (auch bekannt als Atom-Shell)
Dies ist die Shell, die der Atom-Editor von github verwendet. Es ist dem Node-Webkit sehr ähnlich, obwohl es zuerst das Skript ausführt und Sie eine Ansicht / ein Fenster für den Benutzer erstellen müssen. Es gibt noch einige andere kleine Unterschiede, aber es lohnt sich, sie sich anzusehen.
Option 2: NW.js früheres Node-Webkit
Das Wesentliche ist, dass es die JS-Engine im Grunde erweitert, damit Sie eine webbasierte App schreiben können, die das erweiterte Objektmodell und die Module des Knotens unterstützt. Anschließend packen Sie Ihre package.json start.html-Module und js-Dateien in eine Zip-Datei (mit der .nw-Erweiterung) und führen Sie es mit nw (.exe) aus. Es sind Windows-, Mac- und Linux-Builds verfügbar.
Option 3: Carlo- Chrom (ium) -Schale vom Knoten.
Auf diese Weise können Sie das lokal installierte Chrome als Shell starten, die eine Verbindung zu einer lokal ausgeführten Serveranwendung herstellen kann. Es erfordert ein lokales Chrom, kommt aber dem sehr nahe, was verlangt wurde.
Option 4: MacGapNode (nur OSX)
MacGap mit Knotenintegration (scheint veraltet zu sein)
Nebenbei: Dienstleistungen ...
Ich kann nicht für OSX als .App sprechen, aber es könnte durchaus möglich sein, eine Hintergrunddienstinstallation in NodeJS und einen Link zu einer "lokalen" Site auf dem Desktop zu erstellen. Die meisten Browser haben die Option, nicht alle Funktionen anzuzeigen (ich weiß, dass Firefox dies insbesondere tut).
Ich weiß, dass Ihre Frage insbesondere OSX betrifft, aber in Windows können Sie NSSM verwenden, um alles als Dienst auszuführen, und ich habe es für NodeJS-basierte Dienste in Windows verwendet. Ich denke, einige der anderen oben genannten Optionen sind je nach Ihren Anforderungen besser.
Entfernt:
nexe- abgestanden / nicht gewartetAppJS- ersetzt durch DeskShellDeskShell- veraltet, Website offlineNode-Webkit-benannt in NW.js.Das XULRunner-Projekt ist ins Stocken geraten und liegt weit zurück.Schub ( Knotenadapter )- veraltet / veraltetDiese Antwort wird für mehrere Fragen kopiert. Diese Verweise dienen hauptsächlich der Aktualisierung.
quelle
Ich schlage vor, sich mit Topcube zu befassen. Ziel ist es, "Knotenentwicklern die Möglichkeit zu geben, ihren Knotenservern eine Desktop-GUI mit HTML5 + CSS3 als GUI-Plattform zur Verfügung zu stellen." Topcube bei Github .
quelle
Derzeit gibt es eine Vielzahl von Möglichkeiten, dies zu erreichen.
Der klare Gewinner beim Packen einer Node + HTML5-App ist derzeit Electron (wird von Atom, VSCode, Slack, Discord usw. verwendet).
Sie können auch jede andere als App gepackte Sprache verwenden (mithilfe von Tools für diese Sprachen / Stapel) und nach einer Knoteninstallation suchen, das "Server" -Skript mit Knoten starten und dann den Standardbrowser (oder eine Webansichtskomponente von) starten andere Mittel), setzen Sie schließlich den Standort auf den Knotendienst. Dies ist eine sehr leichte und effiziente Methode, die jedoch nicht so gut in das Betriebssystem integriert ist wie eine Lösung wie Electron.
Der Hauptkonkurrent von Electron ist hier NW.js. Soweit ich das beurteilen kann, ist das Hauptmerkmal von NW.js, das Electron (noch) nicht hat, die Kompilierung / Verschleierung. Während Electron automatische Updates einfach macht.
https://electron.atom.io/ https://nwjs.io/
quelle