web-dev-qa-db-fra.com

Sur l'installation de npm: rejet non géré Erreur: EACCES: autorisation refusée

J'ai réussi à corrompre mon installation npm, et chaque fois que j'essaie d'installer des packages à l'aide de npm install, je reçois des messages d'erreur dans ce sens:

Rejet non géré Erreur: EACCES: autorisation refusée, ouvrez '/Users/marknorgate/.npm/_cacache/tmp/a449402d'

J'ai essayé de réinstaller le noeud & npm, et j'ai également essayé de déplacer mon cache npm ailleurs en utilisant ces instructions mais rien ne fonctionne.

Comment puis-je le faire fonctionner?

201
serlingpa

Restaurez la propriété des dossiers associés à npm de l'utilisateur, à l'utilisateur actuel, comme suit:

Sudo chown -R $USER:$GROUP ~/.npm
Sudo chown -R $USER:$GROUP ~/.config
691
SrAxi

Sudo chown -R $(whoami) ~/.npm

Sudo chown -R $(whoami) ~/.config

47
Osama Rashid

Cela se produit si vous utilisez NPM pour la première fois avec Sudo, par exemple lorsque vous essayez d'effectuer une installation -g de npm.

Les dossiers de cache doivent appartenir à l'utilisateur actuel et non à root.

Sudo chown -R $USER:$GROUP ~/.npm
Sudo chown -R $USER:$GROUP ~/.config

Cela donnera la propriété aux dossiers ci-dessus lors de l'exécution avec des autorisations utilisateur normales (pas comme Sudo).

Il est également intéressant de noter que vous ne devriez pas installer de packages globaux avec Sudo. Si vous rencontrez des problèmes avec des autorisations, cela vaut la peine de changer votre répertoire global. Les docs recommandent:

mkdir ~/.npm-global

npm config set prefix '~/.npm-global'

Puis en mettant à jour votre PATH où vous le définissez (~/.profile etc.)

export PATH=~/.npm-global/bin:$PATH

Vous devrez ensuite vous assurer que la variable env. PATH est définie (redémarrage du terminal ou utilisation de la commande source).

https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

33
Ryu Kent

La réponse ci-dessus n'a pas fonctionné pour moi. Essayez simplement de lancer votre commande avec --unsafe-perm.

par exemple

npm install -g node@latest --unsafe-perm

Cela semble résoudre le problème.

8
Junaid Farooq

Si aucune des réponses n’a fonctionné, essayez la commande suivante: npm cache clear --force. Cela a fonctionné pour moi.

Je l'ai trouvé à https://github.com/vuejs/vue-cli/issues/1809 .

6
Jen Lim
Sudo npm cache clean --force --unsafe-perm

et puis npm je vais normalement

5
Mwangi Gituathi

il suffit de créer des dossiers _cache/tmp sous .npm manuellement à l'emplacement /Users/marknorgate/.npm/_cacache/tmp et d'exécuter votre commande avec un accès administrateur.

2
Anshuman Jaiswal
Sudo npm install --unsafe-perm=true --allow-root

C'était celui qui a fonctionné pour moi

1
BliteKnight

Faites simplement Sudo npm cache clean --force --unsafe-perm et npm i ira normalement.

0
James Okunlade

vous pouvez essayer la commande suivante pour expo:

Sudo chown -R $USER:$GROUP ~/.expo
0
cesur bağcı
0
Claudia Vizena