Accueil·Messages d’erreur

npm · npm

Le message

npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'

Ce que cela veut dire

npm a voulu écrire dans un répertoire système que votre utilisateur ne possède pas : le paquet n'a rien de mauvais, vous n'avez simplement pas le droit d'y écrire. C'est presque toujours un npm install -g visant un node que le gestionnaire de paquets du système a placé à un endroit comme /usr/local. npm config set prefix ~/.npm-global déplace les installations globales dans votre répertoire personnel et, son bin étant dans le PATH, l'erreur ne revient pas. sudo npm install -g fonctionne, mais laisse des fichiers appartenant à root dans le cache et dans node_modules, qui produiront plus tard le même EACCES lors d'installations ordinaires ; un gestionnaire de versions comme nvm supprime toute cette famille de problèmes.

Le correctif

npm config set prefix ~/.npm-global
Émis par
npm
npm
20

Avec npm, la cause tient dans la première ligne code XXXX et non dans les six dernières lignes npm ERR!, et quand la panne vient de l'arbre de dépendances ou d'une compilation native plutôt que de votre code, supprimer node_modules puis réinstaller en règle environ la moitié.

Lire un message d’erreur

  • Lisez à partir de la première ligne. Plus on descend, plus il s’agit des entrailles de l’outil ; la cause est généralement en haut.
  • S’il y a un fichier et un numéro de ligne, commencez là — pas la première image de la pile, mais la ligne la plus haute qui nomme un fichier de vous.
  • Cherchez le message tel quel, mais retirez d’abord vos chemins et vos noms de variables : c’est cela qui empêche la correspondance.
  • La même situation se formule autrement selon la version de l’outil. Si les résultats sonnent faux, ajoutez le numéro de version.
  • Avant de coller un correctif, vérifiez ce qu’il jette. Certains sont irréversibles.

Questions fréquentes

Q. Que veut dire « npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules' » ?

npm a voulu écrire dans un répertoire système que votre utilisateur ne possède pas : le paquet n'a rien de mauvais, vous n'avez simplement pas le droit d'y écrire. C'est presque toujours un npm install -g visant un node que le gestionnaire de paquets du système a placé à un endroit comme /usr/local. npm config set prefix ~/.npm-global déplace les installations globales dans votre répertoire personnel et, son bin étant dans le PATH, l'erreur ne revient pas. sudo npm install -g fonctionne, mais laisse des fichiers appartenant à root dans le cache et dans node_modules, qui produiront plus tard le même EACCES lors d'installations ordinaires ; un gestionnaire de versions comme nvm supprime toute cette famille de problèmes.

Q. Comment le corriger ?

npm config set prefix ~/.npm-global — avant de le lancer, vérifiez plus haut ce que cette commande jette.

Q. Quel outil émet cela ?

npm. Cela relève de npm, et le message compte 8 mots.

Erreurs voisines