Configurando nvmrc
Introdução
Ao desenvolver vários projetos, cada projeto pode exigir uma versão diferente do Node.js. Nesses casos, precisamos especificar a versão do Node.js para cada projeto executando os comandos nvm install e nvm use no terminal para instalar e alternar versões.
No entanto, executar comandos manualmente no terminal toda vez se torna complicado, especialmente à medida que o número de projetos aumenta. É fácil esquecer de alternar versões ou alternar para a versão errada, o que pode fazer com que os projetos não iniciem ou encontrem erros durante a execução.
É aqui que precisamos de um método para gerenciar versões do Node.js e alternar automaticamente entre elas, e é aqui que o .nvmrc entra em jogo.
O que é .nvmrc?
Da explicação acima, você pode entender que o arquivo .nvmrc é usado para gerenciar a versão do Node.js para nosso projeto. Este arquivo é muito simples: ele contém apenas texto representando uma versão do Node.js que o nvm pode reconhecer, como v18.12.0.
Como usar o arquivo .nvmrc?
Você pode criar um arquivo .nvmrc com conteúdo que seja um número de versão do Node.js ou outro texto que o nvm possa entender. Para detalhes, você pode digitar nvm --help no terminal.
Com o arquivo .nvmrc, quando você executa comandos como nvm use, nvm install, nvm exec, nvm run e nvm which no terminal sem especificar uma versão, a versão especificada no arquivo .nvmrc será usada.
Criando um arquivo .nvmrc
Por exemplo, no diretório atual, para fazer o nvm especificar a versão mais recente do 18.12, a versão LTS mais recente ou a versão mais recente do Node.js, você pode usar o comando echo para criar um arquivo .nvmrc:
bash
$ echo "18.12" > .nvmrc
# Definir para a versão LTS mais recente
$ echo "lts/*" > .nvmrc
# Definir para a versão mais recente
$ echo "node" > .nvmrcComandos como nvm use percorrerão a estrutura de diretórios para cima a partir do diretório atual procurando o arquivo .nvmrc. Isso significa que executar comandos como nvm use em qualquer subdiretório de um diretório com um arquivo .nvmrc ainda usará esse arquivo .nvmrc.
O arquivo .nvmrc deve conter uma <version> que esteja em conformidade com o que está listado em nvm --help, seguido por uma nova linha. Espaços à direita não são permitidos e uma nova linha à direita é obrigatória.
Como mostrado na imagem abaixo, não há espaço após v14.21.3, apenas uma quebra de linha.

Integração profunda com terminais shell
Você pode usar avn para integrar profundamente com seu shell e invocar automaticamente o nvm ao mudar de diretórios.
Se você preferir uma solução leve, pode usar o método abaixo.
Alternar automaticamente versões do Node.js no terminal zsh com base no arquivo .nvmrc
Depois de adicionar o código seguinte ao seu $HOME/.zshrc, nvm use será chamado automaticamente sempre que você entrar em um diretório contendo um arquivo .nvmrc. A string no arquivo .nvmrc informa ao nvm qual versão do Node.js usar.
bash
# Abrir diretório home e editar arquivo .zshrc
$ cd
$ vi .zshrcEste é o código que precisa ser escrito no .zshrc:
bash
# Copie este segmento de código para o arquivo .zshrc
# coloque isso após a inicialização do nvm!
autoload -U add-zsh-hook
load-nvmrc() {
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" != "$(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-nvmrcDepois de editar o arquivo .zshrc, execute source .zshrc para fazer o comando ter efeito:
bash
$ source ~/.zshrcEm projetos com um arquivo .nvmrc, quando você abre o terminal integrado no vscode, você descobrirá que nvm use é executado automaticamente, com a saída correspondente na linha de comando.
