Con NVM la versione Node predefinita non è una proprietà globale del sistema: è il risultato dell’alias che la shell carica all’avvio e del profilo utente che inizializza NVM. Se vuoi evitare sorprese tra terminale interattivo, SSH, cron, build CI e servizi systemd, devi trattare la scelta della versione come una configurazione per contesto, non come un singolo comando da lanciare una volta sola.
La regola pratica è semplice: installa la versione richiesta, verifica che NVM sia inizializzato nella shell giusta, imposta l’alias default, poi controlla che la shell non venga bypassata. Se salti uno di questi passaggi, ti ritrovi con una macchina che sembra corretta in login shell ma usa ancora la versione sbagliata in task non interattivi.
Perché “default” con NVM non significa “di sistema”
NVM gestisce versioni Node per utente, caricandole tramite funzioni di shell. Questo significa che il comando node punta alla versione selezionata solo dopo che NVM è stato inizializzato e l’alias è stato risolto. In pratica, il default di NVM vive in file come ~/.nvm/alias/default e viene applicato quando la shell legge il profilo corretto.
Se stai cercando un comportamento coerente su una workstation o su un server, devi distinguere tre livelli:
- versione installata da NVM;
- alias
defaultche NVM usa quando apri una nuova shell; - ambiente di esecuzione reale del processo, che può ignorare il profilo utente.
È qui che molti interventi si rompono: il comando funziona a mano, ma non dentro un servizio, non in cron, non in una pipeline e non sotto un utente diverso.
Verifica prima di cambiare: quale Node sta davvero girando
Prima di toccare configurazioni, verifica lo stato corrente. Il punto non è vedere “una” versione di Node, ma capire quale versione è visibile nella shell che ti interessa.
Esegui questi controlli nella stessa sessione che usi normalmente:
which node
node -v
nvm --version
nvm current
nvm aliasAtteso: which node deve puntare sotto ~/.nvm/versions/ o a un path coerente con NVM; nvm current deve mostrare la versione attiva; nvm alias deve includere una riga default -> x.y.z oppure default -> lts/*. Se which node mostra /usr/bin/node o un path di sistema, NVM non sta governando quella shell.
Se nvm non è riconosciuto, il problema non è la versione: è l’inizializzazione della shell. In quel caso il fix va fatto nel profilo corretto, non con un alias “a mano” dentro la sessione corrente.
La configurazione corretta: installa, imposta, verifica
La sequenza più pulita è questa: installi la versione desiderata, imposti l’alias default e poi apri una nuova shell per confermare che il caricamento automatico funzioni davvero.
Installa la versione che vuoi rendere predefinita.
nvm install 20
nvm install --ltsSe devi fissare una major specifica, meglio indicare la versione esatta invece di affidarti a un “latest” implicito. Così eviti cambi silenziosi al prossimo aggiornamento del profilo LTS.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.