web-dev-qa-db-fra.com

Réaction native ERREUR Packager ne peut pas écouter sur le port 8081

Quand je commande react-native start, il affiche Packager can't listen on port 8081

Je sais que le problème concerne certains logiciels utilisant mon port 8081.

J'utilise Resource Monitor pour voir le port, mais je ne peux pas trouver 8081, il n'y a pas de 8081, quelqu'un peut m'apprendre à le trouver? Merci d'avance.  enter image description here

60
徐博俊

Vous pouvez exécuter le conditionneur sur un autre port.

$ react-native start --port=8088

Vous pouvez également rechercher quels ports utilisent Windows avec netstat.

$ netstat -a -b -o

Netstat vous donne un PID, que vous pouvez utiliser pour tuer le processus.

$ taskkill /pid 1234
87
Viktor Seč

Sur un Mac, exécutez la commande suivante pour trouver l'ID du processus utilisant le port 8081.
Sudo lsof -i :8081
Ensuite, exécutez ce qui suit pour terminer le processus:
kill -9 23583

Voici à quoi cela ressemblera  enter image description here

105
RC_02

Cette erreur vient car un processus est déjà en cours d'exécution sur le port 8081. Arrêtez ce processus et ensuite exécutez votre commande, il exécutera votre code. Pour cette première liste, tous les processus qui utilisent ce port en tapant 

lsof -i :8081  

Cette commande liste l’identifiant de processus (PID) du processus, puis tue le processus de noeud en utilisant 

kill -9 <PID>  

Ici, le PID est l'identifiant du processus du noeud.

30
Pulkit Aggarwal

Cette image montre en effet que votre 8081 n'est pas utilisé. Si les suggestions ci-dessus ne vous ont pas aidé et que votre appareil mobile est connecté à votre ordinateur via USB (et que vous utilisez Android 5.0 (Lollipop) ou une version ultérieure), vous pouvez essayer:

$ adb reconnect

Ce n'est pas nécessaire dans la plupart des cas, mais juste au cas où, réinitialisons votre connexion avec votre mobile et redémarrez le serveur adb. Finalement:

$ adb reverse tcp:8081 tcp:8081

Ainsi, chaque fois que votre appareil mobile tente d’accéder au port 8081 sur lui-même, il sera routé vers le port 8081 de votre PC.

Ou on pourrait essayer

$ killall node
15
Miodrag Smolovic

Prenez le terminal et tapez

fuser 8081/tcp

Vous obtiendrez un identifiant de processus utilisant le port 8081Maintenant, supprimez le processus. 

kill <pid>
6
FortuneCookie

buntu/Unix && MacOS

Mon Metro Bundler était bloqué et il y avait beaucoup de processus de nœuds en cours d'exécution mais je n'avais pas d'autre développement en cours en dehors de react-native, alors j'ai lancé:

$ killall -9 node

Par défaut, Metro Bundler traverse le noeud sur le port 8081 et peut rencontrer des problèmes qui le bloquent parfois (généralement à cause de la pression sur CTRL+S successivement avec rechargement à chaud). Si vous appuyez sur CTRL+C pour tuer le processus react-native run-Android, vous allez soudainement passer un mauvais moment car react-native-run-Android restera bloqué sur:

Scanning folders for symlinks in /home/poop/dev/some-app/node_modules (41ms)

Réparer:

$ killall -9 node

$ react-native run-Android

Remarque: Si vous développez d'autres applications à ce moment-là, la suppression de tous les processus de nœud peut les interrompre ou de tout service basé sur un nœud en cours d'exécution. Soyez donc conscient de la nature générale de killall -9. Si vous n'exécutez pas de base de données ou d'application basée sur un nœud ou si cela ne vous dérange pas de les redémarrer manuellement, vous devriez pouvoir le faire.

La raison pour laquelle je laisse cette réponse détaillée sur cette question semi-sans lien est que le mien est une solution à un problème commun semi-lié qui nécessite malheureusement deux étapes à résoudre mais qui, heureusement, ne prend que deux étapes pour se remettre au travail.

Si vous souhaitez supprimer chirurgicalement exactement les déchets Metro Bundler sur le port 8081, suivez les étapes de la réponse de RC_02, qui sont:

$ Sudo lsof -i :8081

$ kill -9 23583

(où 23583 est l'ID de processus)

3
agm1984

Vérifiez si un serveur de nœud est déjà en cours d'exécution sur votre ordinateur, puis fermez-le.

2
Hitesh Sahu

Vous devez tuer tous les processus en cours d'exécution sur le port 8081 en kill -9 $(lsof -i:8081)

1
Nagibaba

Essayez d’exécuter sur un autre port comme 3131. Exécutez la commande suivante:

react-native run-Android --port=3131
1
alvaropaco

Afin de résoudre ce problème, le processus que j'ai mentionné ci-dessous.

S'il vous plaît annuler le processus en cours de "réactif natif run-Android" par CTRL + C ou CMD + C

Fermez la ligne de commande de la fenêtre de metro bundler (terminal) qui s’est ouverte automatiquement.

Exécutez à nouveau la commande sur le terminal, “react-native run-Android

0
Nirav

Cela est peut-être dû au fait que McAfee utilise ce port. Faire simple lsof -i 8081 peut ne pas montrer l'application et vous devrez peut-être le faire.

Faites Sudo lsof -i 8081 et si cette commande donne une sortie, vous pouvez la tuer en utilisant Sudo launchctl remove com.McAfee.agent.macmn. Après cela, recommencez le conditionneur.

0
Sankalp

dans mon cas, Internet sur l'émulateur est en panne car il n'y a pas de signal wifi sur l'émulateur. La réinitialisation de l'émulateur a fonctionné.

0
Rohit Mandiwal

Tout d’abord, dans votre appareil, accédez à Dev. Option -> ADB sur le réseau Après le faire:

$ adb connect <your device adb network>
$ react-native run-Android 

(ou run-ios, au fait)

si cela a réussi, votre appareil a installé app-debug.apk, ouvrez app-debug et allez à Dev. Paramètres -> Serveur de débogage Hôte et port du périphérique , , Entrez l'adresse IP de votre machine (généralement, Préférences système -> Réseau ), comme dans l'exemple ci-dessous < adresse IP de votre machine >: 8081 (sans inégalité)

enfin, exécutez la commande ci-dessous

$ react-native start --port=8081

essayez d'autres ports et vérifiez que votre machine et votre périphérique sont sur le même réseau.

0
Hermanyo H