Last active
October 6, 2023 15:42
-
-
Save nucliweb/780c3262aa1d1baa260a219f20898991 to your computer and use it in GitHub Desktop.
Zsh script to switch to Node defined in the .nvmrc file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# place this after nvm initialization! | |
autoload -U add-zsh-hook | |
load-nvmrc() { | |
local nvmrc_path | |
nvmrc_path="$(nvm_find_nvmrc)" | |
if [ -n "$nvmrc_path" ]; then | |
local nvmrc_node_version | |
nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") | |
if [ "$nvmrc_node_version" = "N/A" ]; then | |
nvm install | |
elif [ "$nvmrc_node_version" != "$(nvm version)" ]; then | |
nvm use | |
fi | |
elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm version)" != "$(nvm version default)" ]; then | |
echo "Reverting to nvm default version" | |
nvm use default | |
fi | |
} | |
add-zsh-hook chpwd load-nvmrc | |
load-nvmrc |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
ℹ️ Require nvm.
📝 When you enter a folder with a
.nvmrc
file, the script reads the node version and changes(1) it if it is different than the current global Node version.(1) Change it if it is installed; if not, download the new version and change it.