2015-12-23 15 views
13

Ich benutze reagieren native Android und Gesicht Problem, um die App auf Android-Gerät bereitzustellen. Als ichReact native Änderung Listenport

reagieren-native Start ausführen, wird es nicht gestartet dev trennen auf Port 8081

enter image description here

Ich habe einige Optionen bei erwähnt versucht:

1) https://facebook.github.io/react-native/docs/troubleshooting.html

2) Es wurde versucht, den Prozess an der Portnummer 8081 zu stoppen, aber kein Erfolg

Meine Frage ist, dass wir die von 8081 nativen dev-Server-Port reagieren zu ändern (die Standardeinstellung in Android ist howwever die gleichen wir in ios aus AppDelegate.m Datei ändern können) zu einigen, was sonst oder anderen Ansatz

Ihre Antworten werden sehr geschätzt.

Dank

Antwort

23

nicht sicher, ob dies dokumentiert ist oder nicht [1], können Sie den Port über ein CLI-Argument angeben, wie folgt aus:

react-native start --port 9988 

ich es im Quellcode gefunden, und es funktionierte auf meinem lokale Rechner :)

https://github.com/facebook/react-native/blob/master/local-cli/server/server.js#L30


[1] Dies ist hier jetzt dokumentiert: http://facebook.github.io/react-native/docs/running-on-device-android.html#configure-your-app-to-connect-to-the-local-dev-server-via-wi-fi

+1

Vielen Dank Patrick, seine Arbeiten. Ich bin in der Lage, Portnummer –

+0

OMG zu ändern, danke! Habe in den letzten 2 Stunden damit zu kämpfen gehabt. Warum ist das nirgendwo dokumentiert?!?! –

+0

Dies ist nicht die richtige Antwort. Der Port auf Windows ist fest codiert. –

6

Ich weiß, es ist spät, aber FYI, es gibt auch einen anderen Weg, wo Sie Ihren Port dauerhaft ändern können.

Zum your_app \ node_modules \ reagieren-native \ local-cli \ server \ server.js und ändern Sie den Port von 8081 bis 8088

die wie etwas sein wird, diese

... 
     module.exports = { 
     name: 'start', 
     func: server, 
     description: 'starts the webserver', 
     options: [{ 
     command: '--port [number]', 
     default: 8088, 
     parse: (val) => Number(val), 
     } 
    ... 
+1

Das Ändern von Dateien in 'node_modules' kann kaum als permanent bezeichnet werden. Jedes Mal, wenn du deine Abhängigkeiten aktualisierst, wirst du diese Veränderung wegblasen. – ckeeney

+0

Dies funktioniert für einen reaktiven nativen Start, aber für einen reaktiven nativen run-ios, der immer noch auf 8081 zeigt. Gibt es eine Idee, wie das gelöst werden kann? –

+0

@YugandharPathi, dieses Problem läuft noch auf ios, Sie können dieses Problem [hier] verfolgen (https://github.com/facebook/react-native/issues/14113). Für Android habe ich den ** debug server host & port für die Geräteeinstellung ** in genymotion aktualisiert und es hat funktioniert. Probieren Sie es für ios. –

0

vim node_modules/reagieren-native/local-cli/server/server.js

Änderung des Standard-Port - ander Port // Beispiel -> 8089

das Projekt zurück -> und fängt npm

-1

Sie können diese react-native-port-patcher verwenden, die den Standardport 8081 durch Ihre gewünschte Portnummer ersetzt.

+0

Das sieht nach einer wirklich schlechten Idee aus. Sehen Sie sich die akzeptierte Antwort –

+0

an. Ich benutze dies auf dem Mac. Die angenommene Antwort funktioniert nicht für meinen Fall.Obwohl ich "react-native start --port 9988" starte und versuche, die App auszuführen, indem ich "react-native run-ios" ausführe, versuche ich über den Standard-Port 8081 zu laufen, der bereits von McAfee belegt ist. Und unten ist das Ergebnis. Verbindung zum localhost-Port 8081 [tcp/sunproxyadmin] erfolgreich! -Port 8081 bereits im Einsatz, Verpackers entweder nicht läuft oder nicht richtig Befehl/bin/sh ausgeführt fehlgeschlagen mit Exit-Code 2 ** BUILD FAILED ** –

+0

Ich bin in der Lage, die Anwendung auszuführen erst nach i habe den Port 8081 von allen Dateien, die ihn verwenden, durch einen anderen Port ersetzt. Also anstatt es manuell zu machen. Ich benutzte "react-native-port-patcher", was die Arbeit für uns erledigt. –

0

Nachdem ich einen ganzen Tag verbracht und viele Lösungen durchgespielt hatte, half mir eine Kombination der Vorschläge, dies zu lösen. Folgen Sie den Schritten unten angegeben:

  1. das Projekt Erstellen Sie den Befehl: 'reagieren-native init [PROJECT_NAME]

  2. Öffnen Sie das Projekt in Xcode und alle Vorkommen von "8081" ersetzen "8088" und speichern Sie die Änderungen

  3. Öffnen Sie Terminal und ändern Sie das Arbeitsverzeichnis in das oben erstellte Projektverzeichnis. Verwenden Sie den folgenden Befehl, um den Port zu ändern, die native Anwendungen reagieren: reagieren-native Start --port 8088

Sobald Sie diesen Befehl ausführen, sehen Sie die folgende Ausgabe im Terminal:

enter image description here

Wie Sie sehen können, startet dies die Metro-Instanz. Töte nicht den Befehl oder das Terminalfenster. Lassen Sie diesen Prozess laufen.

  1. Öffnen Sie ein neues Terminal-Fenster, wechseln Sie in das Projektverzeichnis das Arbeitsverzeichnis und führen Sie das reagieren-native Projekt mit dem Befehl:

reagieren-native Lauf ios

Sobald das Projekt erfolgreich auf dem zweiten Endgerät aufbaut, erhalten Sie einen Fortschrittsbalken, welche die Beladung des app Bündel in dem ersten Terminal-Fenster sehen, wie unten gezeigt:

enter image description here nach Beendigung des Bundlade , die app erfolgreich ly startet auf dem Simulator

Hoffe das hilft. Glücklich Codierung

0

Set RCT_METRO_PORT, Beispiel:

export RCT_METRO_PORT=8765