In breve
Localhost significa "questo computer", e un development server (dev server) è un programma che fa girare il tuo sito web in locale, così solo tu lo vedi durante la costruzione. Quando lanci un comando come "npm run dev", questo avvia un dev server e mostra un indirizzo come localhost:3000. Aprire quell'indirizzo mostra il tuo sito, ma vive solo sulla tua macchina e nessun altro su Internet può raggiungerlo. È esattamente ciò che vuoi prima di essere pronto a passare in pubblico.
Cosa significano localhost e la porta
Un indirizzo localhost somiglia a localhost:3000. "localhost" significa sempre il tuo computer, e il numero dopo i due punti (la porta) indica solo a quale porta il dev server è in ascolto. Strumenti diversi usano porte diverse, quindi 3000, 5173 o simili è normale e non è motivo di preoccupazione.
Perché il dev server è particolare
Un dev server fa più che mostrare il tuo sito. Sorveglia i tuoi file e aggiorna la pagina nel momento in cui salvi una modifica, il che rende veloce la costruzione web. Poiché continua a girare e a sorvegliare, il comando non "si conclude" e non ti restituisce il controllo a un prompt; è normale, non un blocco.
Locale non è la stessa cosa di live
Un sito su localhost non è su Internet. Condividere il link localhost con un amico non funziona per lui, perché l'indirizzo significa soltanto "questo computer" su ogni macchina. Per mettere il tuo sito online, ne fai il deploy verso un host come Vercel, che ti dà una vera URL pubblica che tutti possono aprire.
Confusioni frequenti dei principianti
Un classico è il messaggio "port already in use", che significa semplicemente che un dev server precedente gira ancora. La soluzione è fermare quello vecchio (Ctrl e C nel suo terminale) o lasciare che lo strumento scelga la prossima porta libera. Un'altra è aspettarsi che le modifiche compaiano senza un dev server in corso; se chiudi il terminale, il sito locale si ferma, il che è normale. Le persone confondono anche il dev server con la build di produzione. Il dev server è ottimizzato per un feedback rapido durante il lavoro, non per veri visitatori, quindi un sito live è costruito e distribuito separatamente. Niente di tutto ciò va memorizzato, ma riconoscere presto "locale" contro "live" risparmia molti mal di testa la prima volta che qualcosa si comporta diversamente dal previsto.
