Cela se produit si la première fois que vous exécutez NPM, c'est avec sudo, par exemple en essayant de faire un npm install -g.
Les dossiers de cache doivent appartenir à l'utilisateur actuel, et non à Root.
sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config
Ceci donnera la propriété des dossiers ci-dessus lorsqu'ils sont exécutés avec les permissions normales de l'utilisateur (pas en tant que sudo).
Il convient également de noter que vous ne devriez pas installer de paquets globaux en utilisant SUDO. Si vous rencontrez des problèmes de permissions, cela vaut la peine de changer votre répertoire global. La documentation le recommande :
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
Ensuite, mettez à jour votre PATH là où vous le définissez (~/.profile, etc.).
export PATH=~/.npm-global/bin:$PATH
Vous devrez ensuite vous assurer que la variable d'environnement PATH est définie (en redémarrant le terminal ou en utilisant la commande source).
https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally