# Autoload the correct Node version with NVM

Used: zsh@5.9 and nvm@0.38.0

If you use NVM to change your Node.js version, and you work on different projects you may found yourself having to remember to switch versions.

If you have a `.nvmrc` file in the project with the Node version, you can add the following lines to your `.zshrc`:

```sh
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
```

That script will try to load the version specified in your `.nvmrc` whenever you navigate in your terminal to the folder with that file.
