Não se faz simplesmente sudo npm

Digamos que você queira instalar para sempre em todo o mundo:

sudo npm install -g forever

O problema aqui é que, se você não tiver um ~ / .npm (pasta de cache do npm) e fizer sudo, a pasta de cache obterá permissões de root: root. Portanto, a próxima instalação não sudo irá falhar com:

npm ERR! Error: EACCES

Isso acontece porque por padrão (pelo menos no Linux), sudo não configura $ HOME (ou seja, personifica) para o usuário alvo (que é root por padrão).

Para “consertar” isso, você deve usar a opção -H .

sudo -H npm install -g forever

ps: A maioria das pessoas nunca perceberá esse problema porque se ~ / .npm já existir, o npm não substituirá sua permissão.

ps2: se você deve usar para sempre no sudo, use-o com -H sudo -H forever list