2017-09-29 2 views
-2

Ich erstelle ein Beispielprojekt für ein Open-Source-Framework. Damit meine Demo ausgeführt werden kann, müssen einige ihrer Abhängigkeiten lokale Server auf anderen Ports ausführen.Was ist der richtige Weg, um mehrere lokale node.js Server zu starten?

Ich würde lieber nur ihnen einen einzigen Befehl zum Ausführen bereitstellen, anstatt ihnen zu sagen, mehrere Terminals zu öffnen und mehrere Befehle in jedem auszuführen.

Was ist der beste/richtigste/eleganteste Weg, dies zu erreichen?

+0

Docker klingt wie eine ideale Lösung für mich, aber auf der anderen Seite fügt es eine zusätzliche Schicht von Komplexität hinzu, wenn die Benutzer nicht damit vertraut sind. –

+0

Wenn Sie ein gewisses Maß an Kontrolle über die zugrunde liegenden Dienste benötigen, können Sie einen Hauptprozess ausführen und 'child_process.fork' verwenden, um die verbleibenden Server und Prozesse zu generieren. Ich mag diesen Ansatz, da er mir ermöglicht, die Prozesse zu überwachen und zu verwalten sowie die Konsolenausgabe und IPC zu konsolidieren. – Thebluefish

Antwort

0

So erreiche ich dies für zwei Webserver. Sie sollten in der Lage sein, mit mehr & 's und fg' s zu spielen, um mehr Server zu bekommen.

package.json:

{ 
    "scripts": { 
     "start": "node node_modules/something/server.js & node server.js && fg 
    } 
} 

So muss der Anwender nur den beiden npm install und dann npm start laufen zwei Server in einem Terminal und ctrl-c kills laufen.

Aufteilung:
node node_modules/something/server.js & Lauf dieses Server im Hintergrund
node server.js && meinen Server im Vordergrund läuft
fg bewegt den zuletzt backgrounded Shell in den Vordergrund

+0

Beachten Sie auch, dass Sie sicherstellen möchten, dass jeder für die Ausführung auf einem anderen Port konfiguriert ist. In den meisten Fällen verwenden Knotenserver dazu eine PORT-Umgebungsvariable. – Paul

-1

Verwenden concurrently npm Paket.

concurrently "node server.js" "node client.js"

Dies ermöglicht es Ihnen, mehrere Befehle mit sauberem Ausgang in einem Rutsch zu schreiben. Und sie müssen nicht nur Knotenserver sein. Sie können beliebige Bash-Befehle kombinieren.

+0

In Kombination mit package.json können Sie all das in einem einzigen Skript platzieren, so wie Sie es wollten. – nkprince007

Verwandte Themen