Dev: Lucaaa!? Il progetto non va.. me spara un errore assurdo! Luca: hai la versione di node corretta per il progetto a cui stai lavorando? Dev: ma che ne so io ho quella che ho sempre.. Luca: hai lanciato nvm use
?
Questo è un discorso che è capitato spesso nel corso della mia carriera lavorativa.
Lavorare con tanti progetti node diversi, con più maintainer diversi, porta facilmente ad una frammentazione delle versioni di node, per questo motivo esistono degli strumenti chiamati “version manager” che permettono di gestire più versioni dello stesso linguaggio nella stessa macchina.
Io personalmente sfrutto nvm
per:
nvm
permette di passare facilmente tra diverse versioni di NodeCome PRIMISSIMA cosa installare nvm, non installare node globalmente nel modo classico.
Basta andare sul repository e prendersi la cURL da lanciare nel terminale, seguendo eventuali istruzioni.
nvm ti gestisce automaticamente una lista indefinita di versioni di Node, e la prima versione che installerai sarà quella di default (finché non vorrai cambiarla in futuro con un comando apposito).
Ti basterà lanciare:
nvm install lts/*
Per ottenere l’ultima versione LTS di Node disponibile!
.nvmrc
file nei tuoi progettiA questo punto ti basterà dichiarare la versione usata in un dato progetto all’interno dell’.nvmrc
, qui puoi metterci qualsiasi notazione supportata da nvm.
Questo è super comodo per evitare di ricordarsi la versione di ogni progetto
autoload -U add-zsh-hook load-nvmrc() { local node_version="$(nvm version)" local nvmrc_path="$(nvm_find_nvmrc)" # nvm_find_nvmrc its a binary shipped with nvm if [ -n "$nvmrc_path" ]; then local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") if [ "$nvmrc_node_version" = "N/A" ]; then nvm install elif [ "$nvmrc_node_version" != "$node_version" ]; then nvm use fi elif [ "$node_version" != "$(nvm version default)" ]; then echo "Reverting to nvm default version" nvm use default fi } add-zsh-hook chpwd load-nvmrc # chpwd is a zsh hook that fires when the current working directory changes load-nvmrc