Certains de vos projets ont besoin de node version 14, et d’autres version 12. Et vous changez manuellement de version à chaque fois ?
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-mobile nvm use 12.22.0 ... cd mon-appli-node nvm 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-hook load-nvmrc() { local node_version="$(nvm version)" local nvmrc_path="$(nvm_find_nvmrc)" 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 load-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.