Kaique de Miranda
Posted on March 4, 2024
Como Usar o npm Sem sudo no macOS
Se você acabou de formatar seu macOS e tentou instalar o Angular CLI globalmente com npm install -g @angular/cli
, é possível que tenha se deparado com um erro de permissão. Isso acontece porque o npm está tentando acessar um diretório que requer privilégios de administrador. Uma solução comum seria usar sudo
, mas isso não é ideal por questões de segurança e conveniência.
Solução Alternativa: configurar o npm
para usar um diretório diferente
Uma ótima alternativa é configurar o npm para usar um diretório para instalações globais onde você tenha permissão de escrita, eliminando a necessidade de sudo
. Aqui está um guia passo a passo:
- Crie um Novo Diretório para Instalações Globais:
mkdir ~/.npm-global
- Configure o npm para Usar o Novo Diretório:
npm config set prefix '~/.npm-global'
- Atualize seu Arquivo de Perfil (.zshrc):
Adicione o seguinte ao seu .zshrc
para que os pacotes instalados globalmente estejam disponíveis no PATH:
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc
Recarregue o arquivo de perfil:
source ~/.zshrc
- Instale Pacotes Globalmente Sem Usar sudo:
Agora, você pode instalar qualquer pacote globalmente sem sudo. Por exemplo:
npm install -g @angular/cli
Script Shell para Automatizar a Configuração
Para facilitar, você pode criar um script shell com os comandos acima. Salve o seguinte em um arquivo .sh
e execute no terminal:
#!/bin/zsh
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc
source ~/.zshrc
echo "npm global setup complete. You can now install global packages without sudo."
Lembre-se de dar permissão de execução ao script com chmod +x nome_do_script.sh
.
Conclusão
Configurar o npm dessa forma não só resolve o problema de permissão, mas também torna seu sistema mais seguro, evitando o uso desnecessário de privilégios de superusuário. Além disso, você ganha mais flexibilidade com suas instalações globais do npm.
Posted on March 4, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.