Standalone Node.js-Anwendung


70

Ich denke darüber nach, eine Desktop-Anwendung zu entwickeln, die aus zwei Teilen besteht:

  • Benutzeroberfläche (Java App zum Beispiel)
  • Back-End-Node.js-Server

Die 2 Teile sind über Steckdosen miteinander verbunden. Fragen Sie nicht, warum ich weiß, dass es komisch ist.

Ich möchte den Kunden die Anwendung mit einem Installationsprogramm zur Verfügung stellen können. Ich möchte nicht, dass Benutzer Node.js selbst installieren müssen.

Gibt es eine Möglichkeit, einen Node.js-Server als eigenständigen Server zu installieren, dh Node.js muss nicht global auf dem System installiert werden?

Dies ist eine Frage für jede Umgebung (Windows, Linux, Mac OS X ...).





@ArtjomB. Die Frage, mit der Sie verlinkt haben, ist 1 Jahr älter als meine. Und diese Frage ist speziell für Windows, das meine Frage nicht beantwortet.
Matthieu Napoli

Antworten:


17

Sie können die Binärdateien mit Ihrer Anwendung bündeln. Sie müssen nichts installieren, um eine Node-App auszuführen. Die Binärdateien sind auf derselben Seite wie die Installationsprogramme verfügbar .

Sie müssen nur wissen, wo sich die Binärdateien befinden, aber ich gehe davon aus, dass Sie ein Installationsprogramm haben, das sie an einem bekannten Ort ablegen kann.

// To start the node process
$ /path/to/binaries/npm install
$ /path/to/binaries/node myApp.js

Ist eine solche Verpackung gemäß der Lizenz von nodejs legal?
Pacerier

1
es beantwortet die Frage nicht
Vyachaslav Gerchicov

Diese Antwort ist veraltet / unvollständig. Es gibt jetzt eine Reihe von Tools, um dies zu handhaben (siehe Antwort von @ CoolAJ86 ). Gerade pkgunter MacOS ausprobiert , generiert es eine eigenständige ausführbare Datei pro Plattform. Ich habe die .exeauf einer sofort einsatzbereiten Windows-VM getestet und funktioniert einwandfrei.
Zakinster

36

Update 04.05.2017 : Und es gibt ein neues Kind in der Stadt:

Update 14.11.2016 : Heutzutage scheinen Electron und nwjs die besten Optionen zu sein.

Original :

Es gibt eine Reihe von Schritten, die Sie ausführen müssen, um ein Installationsprogramm zu erstellen. Diese variieren je nach Betriebssystem. Zum Beispiel:


9

Node-Webkit ist eine Option, aber es ist wirklich nicht für eine Beziehung vom Typ "Server - Client" eingerichtet.

Eine weitere Option ist das Packen der Installationsprogramme für node.js mit Ihrem Anwendungsinstallationsprogramm. Wenn die Anwendung gestartet wird, können Sie einen node.js-Prozess starten. Ich weiß, dass einige Entwickler dies mit Titan gemacht haben. Hier sind ein bisschen mehr Informationen .

Hoffe das hilft!


2
Sie können einen Server über das Node-Webkit so starten, wie Sie ihn in Node.js starten. Es ist nur so, dass das Node-Webkit einen anderen Weg bietet als die B / S-Architektur.
Roger Wang

Dies beantwortet meine Frage nicht direkt (also habe ich eine andere angenommen), aber das ist großartig. Dies ist eine noch bessere Lösung als das, was ich geplant hatte !! Vielen Dank!!
Matthieu Napoli

@ RogerWang Könnten Sie erklären, wie ein Server von Node-Webkit
Premalatha


3

Erwähnenswert ist Electron von GitHub. Wird zum Erstellen von Atom, Slack, Visual Studio Code und mehr verwendet.


@jezrael - das ist nicht schlimmer als der Rest der Antworten. Es liegt in der Natur der Frage.
Tom Zych

1

Ich bin gerade auf nexe gestoßen - ein Tool, das "eine einzelne ausführbare Datei aus Ihrer node.js-App erstellt".

Ich habe es noch nicht ausprobiert, aber ich denke, das funktioniert sogar ohne Installationsprogramm - es wird nur eine einzige eigenständige Binärdatei erstellt.


2
Ich habe es gerade versucht. Hatte viele Probleme. Es würde lautlos viel scheitern. Ich habe es in einigen meiner Anwendungsfälle nie zum Laufen gebracht, also bin ich auf das oben erwähnte Paket umgestiegen und hatte Probleme.
Sobachatina

-1

Ich habe hier nach dem Desktop-App-Framework von Node.j gesucht (obwohl die Frage von OP zur Installation des node.js-Servers als Paket, nicht zur App mit Benutzeroberfläche).

Ich möchte Proton Native erwähnen, da es hier bisher fehlt. Es ist noch neu, sieht aber vielversprechend aus. Sie können React Native-Komponenten verwenden, um Desktop-Apps für verschiedene Plattformen zu erstellen (verwendet Qt unter der Haube).


Einige ähnliche Antworten wurden bereits gelöscht, alle wurden abgelehnt. Antworten auf SO sind im Allgemeinen nicht dazu gedacht, vorzuschlagen, welche Bibliothek / welches Framework verwendet werden soll. Dass andere Leute es getan haben ... bedeutet nicht, dass es nützlich / richtig ist.
Kevin B
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.