DEV Community

Cover image for Como usar o npm sem sudo no MacOS
Kaique de Miranda
Kaique de Miranda

Posted on

Como usar o npm sem sudo no MacOS

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
Enter fullscreen mode Exit fullscreen mode
  • Configure o npm para Usar o Novo Diretório:
   npm config set prefix '~/.npm-global'
Enter fullscreen mode Exit fullscreen mode
  • 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
Enter fullscreen mode Exit fullscreen mode

Recarregue o arquivo de perfil:

   source ~/.zshrc
Enter fullscreen mode Exit fullscreen mode
  • Instale Pacotes Globalmente Sem Usar sudo:

Agora, você pode instalar qualquer pacote globalmente sem sudo. Por exemplo:

   npm install -g @angular/cli
Enter fullscreen mode Exit fullscreen mode

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."
Enter fullscreen mode Exit fullscreen mode

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.

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up