Alternando Entre Projetos
Uma das principais vantagens do Volta é como ele lida sem esforço com diferentes versões de ferramentas em projetos diferentes. Esta página explica como o Volta gerencia automaticamente seu ambiente JavaScript quando você se move entre projetos.
Troca Automática de Versões
Diferente de outros gerenciadores de versões que exigem que você alterne manualmente entre versões de ferramentas, o Volta gerencia isso automaticamente com base em seu diretório atual.
Como Funciona
- Quando você executa comandos JavaScript (como
node
,npm
ou binários de pacotes), os shims do Volta interceptam o comando - O Volta verifica seu diretório atual para ver se você está em um projeto com versões de ferramentas fixadas
- Se estiver, o Volta usa as versões fixadas no
package.json
desse projeto - Se você não estiver em um projeto com versões fixadas, o Volta usa suas ferramentas padrão
Tudo isso acontece de forma transparente, sem comandos adicionais necessários.
Exemplo de Fluxo de Trabalho
Imagine que você tem dois projetos com diferentes requisitos de Node.js:
Projeto A (~/projects/project-a/package.json
):
{
"volta": {
"node": "14.19.1",
"npm": "6.14.16"
}
}
Projeto B (~/projects/project-b/package.json
):
{
"volta": {
"node": "16.14.2",
"npm": "8.5.0"
}
}
Seu fluxo de trabalho pode ser assim:
# No projeto A
cd ~/projects/project-a
node --version # mostra v14.19.1
npm --version # mostra v6.14.16
# Alternando para o projeto B
cd ~/projects/project-b
node --version # automaticamente mostra v16.14.2
npm --version # automaticamente mostra v8.5.0
# Fora de qualquer projeto
cd ~
node --version # mostra sua versão padrão do Node
Projetos Aninhados
Se você tem projetos aninhados, o Volta usará as versões de ferramentas do package.json
mais próximo com seção volta
.
Por exemplo:
/parent-project/package.json (tem seção volta, node@14)
/parent-project/child-project/package.json (tem seção volta, node@16)
/parent-project/other-directory/ (sem package.json)
Se você executar comandos em:
/parent-project/child-project/
- Volta usa Node.js 16/parent-project/other-directory/
- Volta usa Node.js 14/parent-project/
- Volta usa Node.js 14
Binários de Pacotes
A troca automática do Volta também se aplica a binários de pacotes. Por exemplo, se você tem uma versão específica do projeto do TypeScript e executa tsc
, o Volta garante que a versão correta seja usada.
Pacotes Globais vs. Locais
Quando você executa um binário de pacote:
- Se o binário existe no
node_modules/.bin/
do projeto, o Volta usa essa versão - Se não existe, mas o pacote foi instalado globalmente via Volta, ele usa essa versão
- Caso contrário, mostra um erro de comando não encontrado
Solução de Problemas
Se você encontrar problemas com troca de versões:
- Verifique se seu projeto tem uma seção
volta
em seupackage.json
- Execute
volta list all
para verificar suas ferramentas instaladas - Verifique se as ferramentas que você precisa estão fixadas ao seu projeto ou instaladas como versão padrão
- Execute
volta which node
para ver qual versão do Node.js o Volta está usando e por quê