web-dev-qa-db-fra.com

React Projet natif, obtenant parfois 'connect ECONNREFUSED 127.0.0.1:19001' en utilisant expo start

J'utilise expo-cli 2.6.14, react-native 0.57.1, Expo SDK 31.0.0. Pour démarrer le projet à exécuter sur l'application Expo, j'utilise expo start. Parfois ça marche, parfois je reçois une erreur et je n'ai aucune idée pourquoi. Si je continue de courir expo start maintes et maintes fois, finalement cela fonctionnera, mais c'est beaucoup de temps perdu.

Voici l'erreur que j'obtiens:

Could not get status from Metro bundler. connect ECONNREFUSED 127.0.0.1:19001
Connecting to Metro bundler failed.
Set EXPO_DEBUG=true in your env to view the stack trace.
error Command failed with exit code 1.

Je ne sais pas pourquoi cela se produit. Je l'ai ignoré car cela ne se produit pas de manière cohérente, mais c'est devenu une nuisance. Avez-vous des réflexions sur le problème?

Edit: il s'agit d'un problème conn qui n'a toujours pas été corrigé.

Edit 2: toujours en cours avec expo-cli 2.12.2 et Expo SDK 33.0.0

18
zaytrix

J'ai également fait face à ce problème, voici ce que j'ai finalement fait:

Essayez d'abord d'utiliser "expo start -c" pour vider le cache lors du lancement, c'est l'option qui fonctionne à chaque fois.

Essayez de supprimer votre dossier .expo s'il ne fonctionne pas et réessayez.

41
amir_muerte

Essayez de supprimer le .expo répertoire depuis la racine du projet.

6
Idan

Pour une raison quelconque, c'est la solution qui fonctionne presque 100% du temps pour moi.

  • expo start
  • CtrlC
  • expo start
5
zaytrix

pour moi j'ai suivi les étapes ci-dessous

  1. expo start

  2. ctrl + c

3 .delete .expo folder from your project

  1. expo build:Android -c
3
user3016257

Tout d'abord, vous devez démarrer l'expo

expo commencer et après construire votre projet

expo publier

utilisez ces deux commandes, cela fonctionne pour moi.

1
Dynamic Methods

J'ai récemment créé une application en react-native et j'ai utilisé la commande "expo build-Android" pour créer le Android APK. Cela a même fonctionné pour moi la plupart du temps mais pas toujours, donc le que j'ai utilisée est (pourrait être utile à quelqu'un d'autre) -

  1. Exécutez la commande "npm install -g expo-cli" et cela génère une erreur - "expo n'est pas reconnu comme des commandes internes et externes"
  2. Recherchez "variables d'environnement" (appuyez sur la touche Windows pour rechercher sur le système d'exploitation Windows) et ajoutez un nouveau chemin d'accès aux variables système "C:\Users\test\AppData\Roaming\npm", vous pourriez avoir un dossier différent à l'endroit de "test" , utilisez-le ici.
  3. Exécutez "npm install -g expo-cli" et cela devrait fonctionner correctement.
  4. Exécutez "expo build: Android" s'il donne toujours la même erreur, puis exécutez 3 commandes dans l'invite de commande (allez maintenant dans le chemin du projet puis exécutez ces 3 commandes l'une après l'autre) étape 1: expo start étape 2: ctrl + c (pour l'arrêter) étape 3: expo build: Android Ce n'est pas clair pour moi pourquoi cela fonctionne et comment je suis arrivé à cette solution mais son fonctionnement.
1
Ayushi Jain

J'obtenais la même erreur. Je l'ai résolu en supprimant le .expo dossier à la racine de mon projet

1
Colyn Brown

Ouvrez un nouveau terminal.
Écrivez ipconfig, vous obtiendrez l'adresse IP4 comme: 192.168 .........
Copiez cette adresse et exécutez ceci:
set REACT_NATIVE_PACKAGER_HOSTNAME=(paste you ip4 address here)
Exécutez maintenant: expo start
Ouvrez le terminal divisé et exécutez: expo build:Android

Bon codage :)

0
Rafay Mustafa

Situation spécifique mais j'ai découvert que Laravel Valet courir en arrière-plan me faisait toujours obtenir le ECONNREFUSED 127.0.0.1:19001 Erreur.

Fonctionnement valet stop avant expo start semblait y remédier.

0
brianjohnhanna

Supprimez votre dossier .expo comme il est recommandé dans la documentation expo

A très bien fonctionné pour moi.

0
Cyril

Vérifiez également quels ports 19xxx sont utilisés par quelles applications. Vous pouvez le faire en exécutant "expo start -c" depuis un terminal et en exécutant les commandes "netstat" et "lsof" depuis un autre terminal. Vous pouvez tuer d'autres processus s'ils utilisent l'un des ports 19xxx.

HTH,

0
chuck