web-dev-qa-db-de.com

ReactJS: Bereitstellung auf lokalem Server

Ich habe eine Web-App mit einem NodeJS + Express + GraphQL + MongoDB-Backend und einem ReactJS + Apollo-Frontend entwickelt. Ich möchte diese Anwendung lokal bereitstellen. Ist das überhaupt möglich? 

Ich bin auf Dutzende von "Bereitstellen bei Heroku", "Bereitstellen bei Digital Ocean", "Bereitstellen bei Github" usw. gestoßen. Aber keine erklärt, wie die Bereitstellung lokal erfolgt. 

Im Moment führe ich aus: nodemon server für das Backend und npm start für das Frontend. Ich sehe die Anwendung, die auf http://localhost:3000/ läuft (ich verwende cors, um das Frontend mit dem Server zu verbinden, der auf Port 3001 läuft).

Ich möchte einfach zu http://localhost:3000/ gehen und die App sehen, ohne die Befehle npm start und nodemon server ausführen zu müssen. Ist das möglich? Wenn ja, wie mache ich das? 

Mein lokaler Server ist meines Wissens kein WAMP-Server (unser Betriebssystem ist jedoch Windows). Die IT-Abteilung sagte mir, dass es eine ist

[...] normaler, normaler alter Server. Die Adresse lautet localhost unter Port 3000. Sie können bei Bedarf einen weiteren Port an 3001 öffnen. Gerade Lass dein Zeug auf dem Laufwerk C: und du solltest gut sein. Ich habe Ich habe noch nie von Node oder React gehört, also kann ich nicht helfen, wenn Sie Fragen haben. 

Irgendwelche Ideen? Vielen Dank im Voraus für Ihre Hilfe! 

UPDATE

Es scheint ein bisschen Verwirrung zu geben, wonach ich suche. Ich versuche, dies lokal bereitzustellen. 

Nehmen wir an, auf Ihrem lokalen Computer (Ihrem Laptop zu Hause) gehen Sie zu localhost: 3000 in Ihrem bevorzugten Browser. Wenn Sie nicht etwas für localhost in diesem Moment servieren, wird nichts angezeigt, es wird "weigern sich zu verbinden" oder so etwas sagen. Ich möchte jeden Rechner im Netzwerk öffnen können, wenn ich zu localhost: 3000 gehe und meine reagierende Site erscheint und funktioniert ... macht das mehr Sinn?

Ich möchte nicht, dass dies Entwicklungsmodus ist. Ich möchte, dass dieses Projekt auf localhost erstellt wird ... Ich denke, dass dies nicht möglich ist.

10
Bens Steves

Um das Problem zu lösen, können Sie ein Startskript erstellen, das npm start und nodemon server ausführt. Vergewissern Sie sich, dass der Server immer aktiv ist. Beachten Sie jedoch, dass alle Fehler Ihren Server stoppen und der Server nicht neu geladen wird, wenn Sie ihn nicht konfigurieren.

4

Wie ich es verstanden habe, möchten Sie es auf einem lokalen Server bereitstellen, nicht auf local auf Ihrem Entwicklungsgerät.

Ich habe darüber nachgedacht ... aber ich bin mir nicht so sicher, dass es immer gut läuft ... :(

Wie können Sie einen Server verwenden, wenn dieser nicht läuft? Genau wie WAMP (auf dem Apache läuft) oder was auch immer Sie dort rollen, muss es laufen. Also, machen Sie es einfach zu einem Hintergrundprozess wie slawomir vorgeschlagen.

PS: Ich glaube nicht, dass Sie Knotenserver richtig verstehen. Lesen Sie this , um zu verstehen, warum Knotenserver neu geladen werden muss. Danach müssen Sie verstehen, dass kein Hot-Reload-Tool perfekt ist, und Sie müssen Ihren Server von Zeit zu Zeit neu starten.

PPS Ich weiß nicht was das bedeutet

[...] normaler, normaler alter Server. Die Adresse lautet localhost auf Port 3000.

wenn ein Server auf 3000 läuft, müssen Sie den Port für Ihren Server auf "smth" ändern (am häufigsten sind es 9000).

5
CT.

Um das Problem zu lösen, müssen Sie zuerst eine Stapeldatei mit der Erweiterung .bat or .cmd erstellen und unter dieser Datei den folgenden Befehl 2 hinzufügen

nodemon servernpm start

Führen Sie dann die folgenden Schritte aus, um es als Startskript für Windows-Betriebssystem hinzuzufügen.

  1. Erstellen Sie eine Verknüpfung zur Batchdatei.
  2. Nachdem die Verknüpfung erstellt wurde, klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie Ausschneiden.
  3. Drücken Sie die Start-Taste, geben Sie Ausführen ein und drücken Sie die Eingabetaste.
  4. Geben Sie im Fenster Ausführen den Befehl Shell: Start ein, um den Ordner Autostart zu öffnen.
  5. Klicken Sie nach dem Öffnen des Autostart-Ordners auf die Registerkarte Start unter oben im Ordner und wählen Sie Einfügen, um die Verknüpfung in den Ordner __. einzufügen.

Die obigen Schritte sind beispielsweise, um eine Batchdatei zu erstellen und sie als Startskript für Benutzer von Windows 8 und 10 hinzuzufügen .. __ Zur besseren Übersicht oder zum Nachschlagen folgen Sie dem folgenden Link. reference-link

0
RamThakur

Ich würde folgendes versuchen:

  1. erstellen Sie Ihre App mit den eingestellten Produktionsumgebungsvariablen
  2. holen Sie alle Dateien aus dem Ordner dist und stellen Sie sie auf Ihrem Server bereit
  3. greifen Sie jetzt mit localhost auf Ihre App zu.
0
venu

Es gibt keine Möglichkeit, den Server neu zu laden, während er ausgeführt wird. Technisch könnte Ihre "Hauptdatei" eine andere Datei auf Änderungen überwachen lassen. Dies ist die Datei, in der Sie Ihr Server-Programm tatsächlich aufbewahren. Bei Änderungen verwerfen Sie Ihre aktuelle Logik und beginnen mit der Ausführung. Das heißt, dies auf diese Weise zu tun, wäre sehr zerbrechlich und eine sehr runde Sache. Es würde auch Ihr Frontend nicht reparieren, für das Sie eine ähnliche Lösung benötigen.

Stattdessen können Sie sich in das Save-Ereignis Ihres bevorzugten Editors einklinken und diese beiden Konsolenbefehle ausführen, sodass der Server bei jedem Speichern automatisch hochgefahren wird. (Stellen Sie sicher, dass auch vorhandene Server aufgeräumt werden.)

0
Bronzdragon