ZSH hook on directory change to update NVM Node version automatically

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 :)