Soluciona Error: listen EADDRINUSE: address already in use :::3000 y Vite Port 5173 is in use
Error: listen EADDRINUSE: address already in use :::3000Este error de Node.js significa que otro proceso ya está escuchando en el puerto 3000 (los ::: son la
forma IPv6 de “todas las direcciones”; también puedes ver 127.0.0.1:3000). A menudo es una copia del
mismo servidor que iniciaste antes y nunca detuviste.
Vite trata la misma situación de otra manera. De forma predeterminada imprime:
Port 5173 is in use, trying another one...(el puerto 5173 está en uso, probando otro) y arranca en el siguiente puerto libre, así que el servidor
está en marcha, pero no donde esperas. Con --strictPort (o server.strictPort: true), Vite termina en
su lugar, con Error: Port 5173 is already in use.
Arréglalo tú mismo
Sección titulada «Arréglalo tú mismo»-
Encuentra el proceso que posee el puerto y termínalo. En Windows:
Ventana de terminal netstat -ano | findstr :3000taskkill /PID 12345 /FPaso a paso, con la versión de PowerShell, en Encontrar y terminar el proceso que usa un puerto.
-
O inicia tu servidor en otro puerto, por ejemplo
PORT=3001para muchos servidores Node o--port 5174para Vite.
Cómo ayuda Moonpool
Sección titulada «Cómo ayuda Moonpool»Si ejecutas el servidor con Moonpool, define port en su entrada. Entonces Moonpool:
- muestra la app como en ejecución mientras algo responda en ese puerto, de modo que un servidor sobrante que lo ocupa aparece como en ejecución pero no “gestionada por Moonpool”;
- al Detener y Reiniciar, termina lo que siga escuchando en
portcuandokillModeesport, que es el valor predeterminado de las appsweb, de modo que el siguiente Iniciar encuentra el puerto libre; - señala dos apps configuradas con el mismo
port.
{ "id": "api", "name": "API", "group": "Web apps", "type": "web", "cwd": "C:\\code\\api", "command": "node server.js", "port": 3000, "env": { "PORT": "3000" }, "killMode": "port"}Moonpool no comprueba el puerto antes de iniciar. Si el puerto sigue ocupado, el comando imprime el error anterior en la pestaña de terminal de la app. Pulsa Detener (que libera el puerto) e Iniciar de nuevo.
Para Vite, pasa --strictPort y mantén port igual al puerto que pides:
npm run dev -- --port 5173 --strictPortSin él, Vite puede pasar al 5174 mientras Moonpool sigue vigilando el 5173, y el punto de estado nunca se queda fijo.
killMode port termina cualquier proceso del puerto, así que úsalo solo con puertos que nada más
necesite. Para apps de Docker en Windows, no lo uses nunca. Consulta
Detener y reiniciar.
Véase también
Sección titulada «Véase también»Moonpool es software gratuito de FasterDB