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.