Ricerca nel sito web

NVM: installa e gestisci più versioni di Node.js in Linux


Node Version Manager (NVM in breve) è un semplice script bash per gestire più versioni node.js attive sul tuo sistema Linux. Ti consente di installare più versioni di node.js e di visualizzare tutte le versioni disponibili per l'installazione e tutte le versioni installate sul tuo sistema.

Nvm supporta anche l'esecuzione di una versione specifica di node.js e può mostrare il percorso dell'eseguibile dove è stato installato e molto altro.

In questo articolo, spiegheremo come installare Node Version Manager (NVM) per gestire più versioni attive di node.js sulla tua distribuzione Linux.

Installazione di NVM (Node Version Manager) in Linux

Per installare o aggiornare nvm sulla tua distribuzione Linux, puoi scaricare lo script di installazione automatica utilizzando gli strumenti a riga di comando curl o wget come mostrato.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
OR
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

Lo script di installazione automatica sopra clona il repository nvm in ~/.nvm nella tua directory home e aggiunge i comandi sorgente richiesti agli script di avvio della shell, ad esempio ~/ .bash_profile, ~/.zshrc, ~/.profile o ~/.bashrc, a seconda del programma shell utilizzato stanno utilizzando come mostrato nell'output seguente.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15916  100 15916    0     0  34227      0 --:--:-- --:--:-- --:--:-- 34301
=> Downloading nvm from git to '/root/.nvm'
=> Cloning into '/root/.nvm'...
remote: Enumerating objects: 359, done.
remote: Counting objects: 100% (359/359), done.
remote: Compressing objects: 100% (305/305), done.
remote: Total 359 (delta 40), reused 168 (delta 28), pack-reused 0
Receiving objects: 100% (359/359), 219.46 KiB | 6.86 MiB/s, done.
Resolving deltas: 100% (40/40), done.
* (HEAD detached at FETCH_HEAD)
  master
=> Compressing and cleaning up git repository

=> Appending nvm source string to /root/.bashrc
=> Appending bash_completion source string to /root/.bashrc
=> You currently have modules installed globally with `npm`. These will no
=> longer be linked to the active version of Node when you install a new node
=> with `nvm`; and they may (depending on how you construct your `$PATH`)
=> override the binaries of modules installed with `nvm`:
...

Una volta completata l'installazione, chiudi la finestra del terminale corrente e aprine una nuova. In alternativa, esegui semplicemente il file del profilo della shell per caricare nvm. Ad esempio, se stai utilizzando bash, esegui il comando seguente:

source ~/.bashrc
OR
source ~/.profile

Successivamente, verifica se nvm è stato installato sul tuo sistema utilizzando il seguente comando.

command -v nvm

nvm

Mostrerà l'output come "nvm" se l'installazione ha avuto esito positivo.

Installa più versioni di Node.js utilizzando NVM

Ora è il momento di imparare come utilizzare Node Version Manager in Linux. Per scaricare, compilare e installare l'ultima versione di node, esegui il seguente comando:

nvm install node 

Tieni presente che nel comando precedente, "node" è un alias per l'ultima versione.

Downloading and installing node v20.0.0...
Downloading https://nodejs.org/dist/v20.0.0/node-v20.0.0-linux-x64.tar.xz...
########################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v20.0.0 (npm v9.6.4)
Creating default alias: default -> node (-> v20.0.0)

Per installare una versione specifica del "nodo", elenca prima le versioni del nodo disponibili, quindi installa la versione come mostrato.

nvm ls-remote
nvm install 19.0.0  
Downloading and installing node v19.0.0...
Downloading https://nodejs.org/dist/v19.0.0/node-v19.0.0-linux-x64.tar.xz...
########################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v19.0.0 (npm v8.19.2)

Dopo aver installato una versione di Node.js utilizzando nvm, il sistema ora dovrebbe puntare a Node.js e npm versioni sotto nvm. Puoi verificare la posizione del comando/binario node e npm utilizzato eseguendo il comando quale come segue:

which node
/root/.nvm/versions/node/v20.0.0/bin/node

# which npm
/root/.nvm/versions/node/v20.0.0/bin/npm

# node -v
v20.0.0

# npm -v
9.6.4

Elenco delle versioni Node.js installate

Puoi controllare tutte le versioni installate con il seguente comando:

nvm ls
->      v19.0.0
        v20.0.0
         system
default -> node (-> v20.0.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v20.0.0) (default)
stable -> 20.0 (-> v20.0.0) (default)
lts/* -> lts/hydrogen (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.0 (-> N/A)
lts/hydrogen -> v18.16.0 (-> N/A)

Scegli la versione del nodo per un progetto

È qui che nvm diventa interessante. Ora puoi utilizzare nvm per scegliere la versione di node.js da utilizzare per ogni progetto su cui stai lavorando, in base ai requisiti. Vediamo come fare, come spiegato di seguito.

Apri più terminali e spostati nelle directory del progetto. Per questa guida, abbiamo due progetti in ~/projects/app-server e ~/projects/test-ui che richiedono ingannevolmente la versione 19.0.0 e 20.0.0 del nodo .

------------ Project 1 ------------ 
cd ~/projects/api-server
nvm use 19.0.0
node -v

------------ Project 2 ------------
cd ~/projects/test-ui
nvm use 20.0.0
node -v

Ad esempio, se hai installato un pacchetto globale quando è attiva la versione 19.0.0, quando passi alla versione 20.0.0, dovrai reinstallare il pacchetto globale con la nuova versione.

È importante sottolineare che è possibile visualizzare il percorso dell'eseguibile in cui è stata installata una versione specifica del nodo come segue:

nvm which 20.0.0
nvm which 19.0.0
nvm which system  #check system-installed version of a node using “system” alias

Imposta la versione predefinita di Node.js in Linux

Inoltre, per impostare manualmente una versione del nodo predefinita da utilizzare in qualsiasi nuova shell, utilizzare l'alias "default" come mostrato.

nvm alias default 20.0.0
nvm alias default system
nvm alias default 19.0.0

Disinstallazione della versione Node.js in Linux

Per disinstallare o rimuovere una versione di Node.js, esegui il seguente comando (non dimenticare di sostituire 19.0.0 con il numero di versione):

nvm uninstall 19.0.0

Disinstallazione di NVM in Linux

Per rimuovere nvm manualmente dal tuo sistema, esegui i seguenti comandi:

rm -rf "$NVM_DIR"
OR
rm -rf ~/.nvm

Successivamente, modifica ~/.bashrc (o il file di configurazione del profilo shell applicabile, come elencato sopra) e rimuovi le seguenti righe di configurazione:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[[ -r $NVM_DIR/bash_completion ]] && \. $NVM_DIR/bash_completion

Per ulteriori informazioni, consulta nvm --help o vai al repository Node Version Manager Github: https://github.com/nvm-sh/nvm.

È tutto! Node Version Manager è un semplice script bash per gestire più versioni attive di node.js sul tuo sistema Linux. Utilizza il modulo di feedback qui sotto per porre domande o condividere i tuoi commenti con noi.