ZSH hook on directory change to update NVM Node version automatically
Automatically having NVM set the Node version by directory using the .nvmrc file
It seems like NVM is the Node version manager of choice for Node.js.
I didn't want to have to remember to set the Node version manually every time I changed directory so I wrote this helpful ZSH hook on directory change and added it to my zshrc.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
function set_nvm_version() {
emulate -L zsh
[ -s "`pwd`/.nvmrc" ] && nvm use
}
chpwd_functions=(${chpwd_functions[@]} "set_nvm_version")
Now every time I change directories ZSH will check to see if a .nvmrc exists in the directory and if it does it will run
nvm use
to take set the Node version. Very helpful if you are forgetful :)