Saltar al contenido

React Native: el puerto 8081 ya está en uso, el empaquetador no se está ejecutando o no se está ejecutando correctamente. El comando /bin/sh falló con el código de salida 2

Comprende el código de forma correcta antes de adaptarlo a tu proyecto y si tdeseas aportar algo puedes dejarlo en la sección de comentarios.

Solución:

Si lo haces lsof -n -i4TCP:8081 como se recomienda en la página de solución de problemas de Facebook y obtiene un resultado vacío, intente nuevamente usando sudo lsof -n -i4TCP:8081.

En mi caso, resulta que el software antivirus de McAfee está ejecutando un proceso que escucha en ese puerto. Matar ese proceso (¡lo sé, lo sé!) solucionó el problema.

Pruebe los siguientes pasos para aquellos que necesitan cambiar el puerto 8081 a un puerto diferente.

> npm start

pondrá en marcha node_modules/react-native/packager/packager.sh

Allí fusionará los parámetros de la línea de comandos, es decir, –port en las opciones predefinidas. es decir, puerto = 8081

Actualicé el paquete.json start opción para incluir mi puerto preferido, ya que no pude detener los servicios existentes usando este puerto.


  "name": "AwesomeProject",
  "version": "0.0.1",
  "private": true,
  "scripts": 
    "start": "node_modules/react-native/packager/packager.sh --port=8999"
  ,
  "dependencies": 
    "react-native": "^0.12.0"
  

** Tenga en cuenta que esto puede no funcionar para Android, que aparentemente está codificado en 8081 Stack Post Here

Construyendo Xcode
Al compilar Xcode, seguirá fallando cuando intente ejecutar un script para iniciar el nodo. Deberá eliminar este script del proceso de compilación o actualizarlo al nuevo puerto.

Por debajo libraries Seleccione React.xcodeproj. En la pantalla principal seleccione Build Phases. Ya verás Run Script.

O elimine esta entrada, habiendo llamado npm start usted mismo, o edite el puerto.

if nc -w 5 -z localhost 8999 ; then
  if ! curl -s "http://localhost:8999/status" | grep -q "packager-status:running" ; then
    echo "Port 8999 already in use, packager is either not running or not running correctly"
    exit 2
  fi
else
  open $SRCROOT/../packager/launchPackager.command || echo "Can't start packager automatically"
fi

depuración
Parece que 8081 está por toda la tienda. Necesita actualizar adicionalmente RCTWebSocketExecutor.m en xcode-project: Libraries/RCTWebSocket.xcodeproj

- (instancetype)init

  return [self initWithURL:[RCTConvert NSURL:@"http://localhost:8999/debugger-proxy"]];

** Lanzamiento del empaquetador desde iOS ** Si solo se inicia desde iOS, también debe editar launchPackager.command para agregar el puerto apropiado, ya que Xcode usa este archivo para ejecutar javascript.

$THIS_DIR/packager.sh  --port=8999

Tenía el mismo problema!

Para Android, puedo usar adb para redirigir el puerto, pero en iOS, no puedo encontrar una forma de ejecutar React Native en un puerto personalizado. Tiene que hacerse cargo del puerto 8081 de McAfee.

Para aquellos usuarios de Mac que no pueden eliminar el proceso/servicio de McAfee directamente, pueden descargarlo a través de launchctl(macOS), puede ejecutar el servidor empaquetador en el puerto 8081 predeterminado.

cd /Library/LaunchDaemons
sudo launchctl unload com.mcafee.agent.macmn.plist

También escribió una nota para explicar los detalles de launchctl y el flujo de arranque de MacOS.

Si para ti ha resultado de ayuda nuestro post, agradeceríamos que lo compartas con otros desarrolladores y nos ayudes a dar difusión a esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *