Node.js
,NPM
,NVM
,ZSH
Comment switcher de version node.js automatiquement ?
Certains de vos projets ont besoin de node version 14, et d'autres version 12. Et vous changez manuellement de version à chaque fois ?
Murat
20 novembre 2021
Vous travaillez sur une application react-native qui fonctionne seulement sur node 12.22.0
. Et de temps en temps vous switchez de projet pour passer à une application nodejs qui doit avoir pour version minimum la version 16.13.0
.
Vous avez déjà heureusement installé (Node Version Manager, nvm)[https://github.com/nvm-sh/nvm]. Mais c’est quand même fatiguant de tout le temps saisir :
cd mon-projet-mobilenvm use 12.22.0...cd mon-appli-nodenvm use 16.13.0
Vous êtes d’accord ?
C’est là qu’entre en jeu, le fichier .npmrc
Le fichier .npmrc, à la racine de votre projet, permet de définir la version qui node par défaut du projet.
Essayez :
node -v > .nvmrc
Cela va générer automatiquement un fichier nvmrc avec la version actuelle de votre node.
v12.22.0
Maintenant si vous vous rendez sur votre dossier, puis faites :
nvm use
La version de votre node va être automatiquement switché pour celle du projet. Pratique, mais pas assez car cela nécessite une étape manuelle.
Autoload avec .zshrc
Que vous utilisez zsh ou bash, vous pouvez rajouter quelques lignes de configuration afin de load automatiquement la version du .nvmrc
local.
J’utilise zsh, donc la configuration suivante va être pour ceux qui l’utilisent aussi. Pour les autres, je vous laisse regarder (ce lien)[https://github.com/nvm-sh/nvm#deeper-shell-integration].
Ajoutez ce bloc de ligne juste après l’initalisation de .nvm :
autoload -U add-zsh-hookload-nvmrc() {local node_version="$(nvm version)"local nvmrc_path="$(nvm_find_nvmrc)"if [ -n "$nvmrc_path" ]; thenlocal nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")if [ "$nvmrc_node_version" = "N/A" ]; thennvm installelif [ "$nvmrc_node_version" != "$node_version" ]; thennvm usefielif [ "$node_version" != "$(nvm version default)" ]; thenecho "Reverting to nvm default version"nvm use defaultfi}add-zsh-hook chpwd load-nvmrcload-nvmrc
Fermez vos terminals puis rouvrez-les, puis admirez le résultat !
Maintenant votre version de node va automatiquement changé selon le dossier où vous vous trouvez ! Pratique !
Merci à @alexventuraio pour cette vidéo.
Technologies dans cet article ...
Back-End
Node.js
D'autres articles dans la même catégorie...