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

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more