Je lance npm install lodash mais il jette Erreur: EACCES: permission refusée erreur. Je sais que c'est un problème de permission, mais à ma connaissance, la permission de Sudo n'est pas requise pour installer le module de noeud localement. Si je le lance avec Sudo, il s’installera dans le dossier ~/node_modules. drwxrwxr-x est l'autorisation de fichier du dossier existant. Je ne peux pas comprendre ce qui aurait pu mal se passer.
Ci-dessous le message d'erreur.
npm ERR! tar.unpack untar error /home/rupesh/.npm/lodash/4.13.1/package.tgz
npm ERR! Linux 3.13.0-88-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "lodash"
npm ERR! node v4.3.1
npm ERR! npm v2.14.12
npm ERR! path /home/rupesh/node_modules/lodash
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir
npm ERR! Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash'
npm ERR! at Error (native)
npm ERR! { [Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash']
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/home/rupesh/node_modules/lodash',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR! fstream_class: 'DirWriter',
npm ERR! fstream_stack:
npm ERR! [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR! 'FSReqWrap.oncomplete (fs.js:82:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! /home/rupesh/Desktop/es6/npm-debug.log
La création de package.json à l'aide de npm init a résolu mon problème.
J'ai le même problème avec l'installation du serveur Webpack sur globalement, suivez les étapes de cette URL résolu mon problème, mon travail serait pour vous.
Les étapes mentionnées ci-dessus sont les suivantes: Sauvegardez votre ordinateur avant de commencer.
Créez un répertoire pour les installations globales:
1.
mkdir ~/.npm-global
Configurez npm pour utiliser le nouveau chemin de répertoire:
2 .
npm config set prefix '~/.npm-global'
Ouvrez ou créez un fichier ~/.profile et ajoutez cette ligne:
3 .
export PATH=~/.npm-global/bin:$PATH
De retour sur la ligne de commande, mettez à jour vos variables système:
4 .
source ~/.profile
Test: Télécharger un package globalement sans utiliser Sudo.
npm install -g jshint
Au lieu des étapes 2 à 4, vous pouvez utiliser la variable ENV correspondante (par exemple, si vous ne souhaitez pas modifier ~/.profile):
NPM_CONFIG_PREFIX=~/.npm-global
Cette commande corrige le problème. Cela a fonctionné pour moi:
Sudo npm install -g --unsafe-perm=true --allow-root
J'ai eu un problème sous Linux. J'ai écrit
chown -R myUserName ./*
dans mon dossier de projet.
D'après ce que je peux voir dans vos journaux, vous avez posté:
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/home/rupesh/node_modules/lodash',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR! fstream_class: 'DirWriter',
le répertoire /home/rupesh/node_modules/
ne dispose pas des autorisations nécessaires pour créer un répertoire. Exécutez donc chown -r rupesh:rupesh /home/rupesh/node_modules/
, cela devrait le résoudre.
FWIW J'ai eu les mêmes symptômes, mais avec un paquet différent. Créer package.json
et exécuter npm init
a PAS résolu mon problème.
Sur ce système, apparemment, de nouveaux dossiers à cet emplacement étaient en cours de création avec des autorisations root. Au cours de npm install
, de nouveaux dossiers sont créés. Cela a entraîné l'échec de l'installation de npm à mi-parcours, même avec Sudo.
La solution consistait à exécuter npm install app
dans un emplacement différent sans racine umask.
Il n'a pas les autorisations d'écriture pour others
(r-x). Essayer avec
chmod a+w <folder>
et répétez.
Commencez par installer sans -g (global) à la racine. Après avoir essayé d’utiliser -g (global), cela a fonctionné pour moi.
J'ai résolu ce problème en modifiant l'autorisation de mon répertoire npm. Je suis allé dans le répertoire global npm pour moi à
/home/<user-name>
Je suis allé dans ce répertoire en entrant cette commande
cd /home/<user-name>
puis modifié l'autorisation du dossier .npm en entrant cette commande.
Sudo chmod -R 777 ".npm"
Cela a fonctionné comme un charme pour moi. Mais il y a une faille de sécurité avec ceci: votre répertoire global de paquets est accessible à tous les niveaux.
Exécutez ces commandes et le problème sera résolu!
Sudo chmod -R 777 /usr/local/bin
Sudo chmod -R 777 /usr/local/lib/node_modules
Essayez de donner toutes les autorisations à votre dossier de projet avec la commande ci-dessous
Sudo chmod -R 777 /yourProjectDirectoryName
courir avec
Sudo npm install lodash
Cela a résolu mon problème immédiatement - mac Mojave 10.14.6 - PhpStorm.
Rejet non géré Erreur: EACCES: autorisation refusée, mkdir '/Users/myname/.npm/_cacache/index-v5/fb/5a'
Sudo chown -R $USER:$GROUP ~/.npm
Sudo chown -R $USER:$GROUP ~/.config
Message original: https://stackoverflow.com/a/50639828
Supprimer le dossier dist et cela résoudre mon problème!