Para encontrar a versão do Node.js que um projeto espera no seu Mac, inspecione os arquivos de versão e a configuração antes de verificar a versão ativa no Terminal. Comece pelo .nvmrc e, em seguida, verifique o package.json em busca das configurações do volta e engines. Esses indícios têm significados diferentes: alguns fixam uma versão para uma ferramenta, enquanto outros descrevem uma faixa de compatibilidade.
1. Abra a pasta do projeto no Terminal
No Finder, localize a pasta do projeto. Clique com a tecla Control pressionada sobre ela e escolha Novo Terminal na Pasta, se essa opção estiver disponível; caso contrário, abra o Terminal e navegue até a pasta com cd. Você pode arrastar a pasta do Finder para a janela do Terminal após digitar cd e, em seguida, pressionar Return. Isso evita digitar incorretamente um caminho que contenha espaços.
Execute estes comandos somente leitura a partir do diretório do projeto:
ls -a
grep -nE '"(engines|volta)"|"node"' package.json .nvmrc
ls -a inclui arquivos ocultos, como o .nvmrc. grep exibe linhas correspondentes dos arquivos existentes; se um arquivo não existir, ele poderá exibir um erro para esse arquivo, o que não significa que o projeto esteja corrompido. Para inspecionar um arquivo específico com mais detalhes, use sed -n '1,160p' package.json ou sed -n '1,20p' .nvmrc quando o arquivo existir. Esses comandos exibem texto; eles não alteram o projeto.
2. Leia o .nvmrc como uma instrução do gerenciador de versões
Se você encontrar o .nvmrc, leia o seu conteúdo. Um valor como 20.16.0 indica que o projeto especifica essa versão do Node.js para usuários do nvm. O nvm também aceita seletores de versão como 20 ou lts/*, portanto, o arquivo pode não identificar uma versão de patch específica. A documentação do nvm informa que seus comandos podem encontrar o .nvmrc no diretório do projeto ou em um diretório pai, e nvm use sem especificar uma versão utiliza o arquivo quando disponível. nvm README: .nvmrc
No macOS, verifique se o nvm está disponível e o que ele resolve neste diretório:
command -v nvm
nvm use
node --version
command -v nvm deve exibir nvm quando o nvm estiver carregado no shell atual. Se o comando não estiver disponível, não presuma que o .nvmrc seja inválido; o arquivo ainda pode documentar a escolha do projeto, mesmo que você não tenha o nvm instalado ou carregado. nvm use seleciona a versão indicada no arquivo se ela estiver instalada; se estiver ausente, o nvm poderá solicitar que você a instale. Só execute a instalação se tiver a intenção de adicionar essa versão do Node ao seu Mac.
3. Verifique o package.json quanto ao Volta e faixas de compatibilidade
Procure por um objeto volta de nível superior. Por exemplo:
"volta": {
"node": "20.16.0"
}
Esta é uma fixação de versão do Node para projetos gerenciados pelo Volta. O Volta documenta que volta pin armazena as versões das ferramentas selecionadas no package.json e que o Volta direciona os comandos do Node para a versão do projeto. Understanding Volta Se você usa o Volta, node --version a partir do diretório do projeto pode mostrar qual versão a toolchain está executando; sem o Volta, o objeto permanece como metadados do projeto, não como um comando para o Terminal do macOS.
Inspecione também a propriedade engines, comumente escrita desta forma:
"engines": {
"node": ">=18 <23"
}
Isso fornece uma faixa de compatibilidade, não necessariamente a versão que os desenvolvedores têm instalada. A documentação do npm descreve o engines.node como a especificação de com quais versões do Node um pacote funciona; a menos que engine-strict esteja habilitado, o npm trata isso como uma recomendação e pode apenas emitir um aviso durante a instalação das dependências. npm package.json documentation Uma faixa ampla significa que o projeto declara compatibilidade entre as versões permitidas; ela não estabelece uma versão exata esperada.
4. Compare os arquivos e resolva indícios conflitantes
Considere um .nvmrc exato ou uma fixação do Volta como o sinal mais forte de uma versão específica gerenciada por ferramentas. Trate engines.node como uma restrição de compatibilidade. Se os arquivos divergirem — por exemplo, o .nvmrc indicar 18, mas engines.node exigir >=20 — não escolha um silenciosamente. Os arquivos podem estar desatualizados, atender a ferramentas diferentes ou refletir uma mudança recente. Verifique o README e as instruções de configuração do projeto e, em seguida, pergunte aos mantenedores ou à equipe qual arquivo eles esperam que os colaboradores sigam.
Os projetos também podem definir versões em arquivos usados por outros gerenciadores de versão ou na configuração de CI. Se .nvmrc e package.json não fornecerem uma resposta útil, pesquise arquivos visíveis do projeto com ls -a e inspecione a documentação de configuração e a definição dos fluxos de trabalho (workflows). Um arquivo de CI pode mostrar a versão usada para builds automatizados, mas isso pode diferir da configuração local do desenvolvedor; confirme o contexto antes de tratá-lo como o requisito do projeto.
5. Verifique a versão do Node que o seu Mac está realmente usando
Depois de identificar a instrução do projeto, compare-a com o ambiente de execução ativo:
node --version
command -v node
O primeiro comando informa a versão ativa do Node; o segundo mostra o caminho do executável selecionado por meio do PATH do seu shell. Eles descrevem o ambiente atual do seu Terminal, e não o requisito do projeto por si sós. Com o nvm, execute nvm use a partir do diretório do projeto antes de verificar. Com o Volta, execute as verificações a partir desse diretório para que as configurações do projeto possam ser aplicadas. Se a versão informada ainda diferir da versão fixada, o gerenciador relevante pode não estar instalado, carregado ou controlando o executável node neste shell.
A resposta prática vem da leitura de ambos os lados: a declaração de versão do repositório indica o que ele exige, enquanto node --version informa o que o seu Mac está executando no momento. Se esses dados não coincidirem, ajuste o gerenciador ou a instrução do projeto antes de confiar nos resultados locais.
Fontes
nvm/README.md — nvm-sh
Understanding Volta — Volta
package.json | npm Docs — npm