Risolvere Error: listen EADDRINUSE: address already in use :::3000 e Vite Port 5173 is in use
Error: listen EADDRINUSE: address already in use :::3000Questo errore di Node.js significa che un altro processo è già in ascolto sulla porta 3000 (i :::
sono la forma IPv6 di «tutti gli indirizzi»; potresti vedere anche 127.0.0.1:3000). Spesso è
una copia dello stesso server che avevi avviato prima e non hai mai arrestato.
Vite gestisce la stessa situazione in modo diverso. Per impostazione predefinita stampa:
Port 5173 is in use, trying another one...(Porta 5173 in uso, ne provo un’altra…) e si avvia sulla successiva porta libera, quindi il
server è attivo ma non dove te lo aspetti. Con --strictPort (o server.strictPort: true) Vite
invece termina, con Error: Port 5173 is already in use.
Risolvilo da solo
Sezione intitolata “Risolvilo da solo”-
Trova il processo che possiede la porta e terminalo. Su Windows:
Finestra del terminale netstat -ano | findstr :3000taskkill /PID 12345 /FPasso per passo, con la versione PowerShell, in Trovare e terminare il processo che usa una porta.
-
Oppure avvia il tuo server su un’altra porta, ad esempio
PORT=3001per molti server Node o--port 5174per Vite.
Come aiuta Moonpool
Sezione intitolata “Come aiuta Moonpool”Se esegui il server tramite Moonpool, imposta port sulla sua voce. Moonpool allora:
- mostra l’app come In esecuzione finché qualcosa risponde su quella porta, quindi un server rimasto attivo che la occupa compare come in esecuzione ma non «managed by Moonpool»;
- con Arresta e Riavvia, termina qualsiasi processo ancora in ascolto su
portquandokillModeèport, che è il valore predefinito per le appweb, così il successivo Avvia trova la porta libera; - segnala due app configurate con la stessa
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 non controlla la porta prima dell’avvio. Se la porta è ancora occupata, il comando stampa l’errore visto sopra nella scheda del terminale dell’app. Premi Arresta (che libera la porta) e Avvia di nuovo.
Per Vite, passa --strictPort e mantieni port uguale alla porta che richiedi:
npm run dev -- --port 5173 --strictPortSenza di esso, Vite può spostarsi su 5174 mentre Moonpool continua a controllare 5173, e il pallino di stato non diventa mai pieno.
killMode port termina qualsiasi processo sulla porta, quindi usalo solo per porte di cui
nient’altro ha bisogno. Per le app Docker su Windows, non usarlo mai. Vedi
Arresto e riavvio.
Vedi anche
Sezione intitolata “Vedi anche”Moonpool è software gratuito di FasterDB