Wie npm start einen Server auf Port 8000 ausführt


78

Ich habe kürzlich einen Angular-Seed-Ordner von Github für die Entwicklung von Angular-Anwendungen verwendet. In einigen früheren AngularJS-Lernprogrammen gab es einen Skriptordner und eine server.js-Datei im Angular-Seed-Ordner, die die gesamte Konfiguration für die Ausführung des Knotenservers enthielten. Wie startet npm jetzt einfach einen Knotenserver und wo ist die gesamte Konfiguration dieses Knotenservers?



Ich bin hierher gekommen, um nach einer nicht eckigen Lösung zu suchen (Next.js, was im Grunde genommen React ist), und habe diese Lösung in dieser Antwort unten gefunden . Bei Verwendung von Next.js sind zumindest für mich keine Ports in der package.jsonDatei definiert . npm run dev -- --port ####Lassen Sie mich den Port angeben.
Jason R Stevens CFA

Antworten:


84

Wenn Sie sich die package.jsonDatei ansehen .

Sie werden so etwas sehen

 "start": "http-server -a localhost -p 8000"

Dies teilt start a http-serverat address of localhoston port mit8000

http-server ist ein Knotenmodul.

Update: - Einschließlich des Kommentars von @Usman sollte er idealerweise in Ihrem enthalten sein, package.jsonaber wenn er nicht vorhanden ist, können Sie ihn in den scriptsAbschnitt aufnehmen.


Ich konnte dies in meiner package.json nicht finden, aber das Hinzufügen unter dem Abschnitt "scripts": {} hat bei mir funktioniert.
Usman

@Usman Idealerweise sollte es in Ihrem vorhanden sein package.json, aber wenn nicht, können Sie es jederzeit hinzufügen. Die Antwort wurde aktualisiert, danke für den Hinweis.
Mritunjay

1
Sie starten nur einen http-Server, aber keine React-Skripte. PORT = 3001
React

77

Wir haben eine Reaktionsanwendung und unsere Entwicklungsmaschinen sind sowohl Mac als auch PC. Der Startbefehl funktioniert nicht für den PC. So haben wir ihn umgangen:

"start": "PORT=3001 react-scripts start",
"start-pc": "set PORT=3001&& react-scripts start",

Auf meinem Mac:

npm start

Auf meinem PC:

 npm run start-pc

Das hat mir wirklich den Tag gerettet! Ich suchte nach einem korrekten Startknoten an einem anderen Port als 3000 für Express. Danke vielmals!. Der Startbefehl funktioniert übrigens auf dem PC. Es sieht so aus in meiner Konfiguration"start": "set PORT=3001 && node ./bin/www"
Konstantin

Ja, ich habe falsch geschrieben. Start funktioniert auf dem PC, aber die Syntax zum Festlegen des Ports unterscheidet sich von Mac / Linux. Deshalb habe ich 2 "Start" -Befehle. Eine ist "Start" für Mac und eine ist "Start-PC" für meinen PC.
YeeHaw1234

Vielen Dank!
DmitryKanunnikoff

56

Port ändern

npm start --port 8000

Die Frage war, auf Port 8000 zu starten ... ein Tippfehler machte es vielleicht 9000?
Akber Iqbal

Ja, es dauert wie> ng Serve "--port" "8000". Läuft gut.
Kapil Raghuwanshi

1
Warum aber die zusätzlichen zwei Striche?
Gfels

@gfels, ich habe keine Ahnung. Aber ich habe es ohne die zwei zusätzlichen Striche versucht und es hat nicht funktioniert.
Tag

2
Selbst nach der Angabe von Port 8000 wird immer noch nach 3000 gesucht$ npm start -port 8000 > react-basics-v1@0.1.0 start F:\React\react-basics-v1 > react-scripts start "8000" Something is already running on port 3000.
Lead Developer

36

Sie können den Port in der Konsole ändern, indem Sie unter Windows Folgendes ausführen :

SET PORT=8000

Verwenden Sie für Mac , Linux oder Windows WSL Folgendes:

export PORT=8000

Der Export legt die Umgebungsvariable für die aktuelle Shell und alle untergeordneten Prozesse wie npm fest , die sie möglicherweise verwenden.

Wenn Sie die Umgebungsvariable wollen nur für die festgelegt werden npm Prozess voraus den Befehl mit der Umgebungsvariablen wie folgt aus (auf Mac und Linux und Windows - WSL ):

PORT=8000 npm run start

1
Dies ist viel einfacher, um Dinge vorübergehend zu testen. Vielen Dank!
sbbs

5
Ich gebe es nur als Teil des Startbefehls an, wenn ich bereits andere Projekte an 'Standard'-Ports ausführe. PORT=<port #> npm start
Drew Reese

28

Um den Port in Ihrem gewünschten Port korrekt zu starten, verwenden Sie:

npm start -- --port 8000


1
Genau das habe ich hier gesucht. Ich verwende Next.js (React) und kann jetzt den Entwicklungsserver an einem bestimmten Port ausführen. npm run dev -- --port 8000Lief wie am Schnürchen.
Jason R Stevens CFA

Something is already running on port 3000funktioniert auch nicht
dotista2008

1
Das hat bei mir nicht funktioniert. Das Modul startet automatisch am 3000.
BReddy

3
Warum gibt es ein Extra --?
Amir Heshmati

1
Auf die beiden Extra --gibt es eine sehr gute Antwort in diesem Thread @AmirHeshmati stackoverflow.com/questions/43046885/…
theocikos
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.