web-dev-qa-db-fra.com

NPM bloqué en donnant la même erreur EISDIR: opération illégale sur un répertoire, lue à l'erreur (native)

Je suis coincé avec cette erreur, peu importe le répertoire dans lequel je me trouve et ce que je tape après "npm" dans cmd.exe. Voici le npm-debug.log: 

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js' ]
2 info using [email protected]
3 info using [email protected]
4 verbose stack Error: EISDIR: illegal operation on a directory, read
4 verbose stack     at Error (native)
5 verbose cwd C:\Users\me
6 error Windows_NT 6.1.7601
7 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js"
8 error node v4.2.6
9 error npm  v2.14.12
10 error code EISDIR
11 error errno -4068
12 error syscall read
13 error eisdir EISDIR: illegal operation on a directory, read
13 error eisdir This is most likely not a problem with npm itself
13 error eisdir and is related to npm not being able to find a package.json in
13 error eisdir a package you are trying to install.
14 verbose exit [ -4068, true ]

J'ai essayé de désinstaller/réinstaller nodejs plusieurs fois, j'ai même supprimé les dossiers npm et npm-cache dans C:\Users\me\AppData\Roaming. Je ne suis pas sûr de ce qui a mal tourné. Une seconde, ça fonctionnait bien, et maintenant je ne peux pas me débarrasser de cette erreur. L'explication dans le journal n'a pas de sens, car elle donne cette erreur dans n'importe quel répertoire. Je dois noter que l'exécution d'une invite de commande en tant qu'administrateur ne génère pas cette erreur. Je me tire les cheveux ce vendredi soir en essayant de régler ce problème, toute aide serait grandement appréciée!

44
AnotherMike

J'ai rencontré le même problème alors que je changeais certains paramètres npm. J'ai fait une erreur avec une commande npm config set et cela a ajouté une ligne faisant référence à un répertoire non existant à C:\Users\{User}\.npmrc. Après avoir supprimé cette ligne manuellement de .npmrc, le problème avait disparu.

29
user1460043

EISDIRsignifie " Erreur, Is Directory ". Cela signifie que NPM tente de modifier quelque chose dans un fichier, mais il s’agit d’un répertoire . Dans votre cas, NPM tente de "lire" un fichier qui est un répertoire (Ligne: 4). Étant donné que l'opération ne peut pas être effectuée, l'erreur est renvoyée.

Trois choses à faire ici. 

  1. Assurez-vous que le fichier existe. Si ce n'est pas le cas, vous devez le créer. (Si NPM dépend de toute information spécifique contenue dans le fichier, vous devrez y avoir cette information).
  2. Assurez-vous qu'il s'agit bien d'un fichier et non d'un répertoire.
  3. Il a les bonnes autorisations. Vous pouvez modifier le fichier pour qu'il dispose de toutes les autorisations avec "Sudo chmod 777 FILE_NAME". (Attention: vous accordez des autorisations de lecture, d’écriture et d’exécution à chacun de ces fichiers)
96
MauricioLeal

Avait le même problème aujourd'hui après avoir mis à niveau mon npm de la version 6.4.1 à la version 6.5.0. J'ai résolu ce problème en téléchargeant le programme d'installation .pkg (recommandé pour la plupart des utilisateurs) à partir de node.js et je l'ai ensuite exécuté.

8
PeeJee

J'ai eu le même problème sur Mac OS X (installé avec homebrew), et le .npmrc n'est pas le seul noeud de lieu stocké des variables de configuration. Il existe un fichier de configuration glocal npmrc dans/usr/local/etc que vous devez modifier à l'aide de cette commande: 

Sudo nano npmrc

Supprimez la ligne ca= ou le paramètre de configuration qui a interrompu votre installation, enregistrez ce fichier et relancez la procédure npm. Vous devriez le voir fonctionner.

5
rncrtr

Dans mon cas, je recevais le message "EISDIR: opération illégale sur un répertoire, lire" parce que dans mon fichier .angular-cli.json, je ne fournissais pas un chemin complet dans "scripts:"

Par exemple j'avais

"scripts": [
        "../node_modules/hammerjs",
        "../node_modules/moment"
      ],

En fait, cela aurait dû être 

"scripts": [
        "../node_modules/hammerjs/hammer.min.js",
        "../node_modules/moment/min/moment.min.js"
      ],
4
Rob

Si votre problème est associé à l’emballeur React Native. Essayez de réinitialiser le cache avec react-native start --reset-cache.

1
Friendly-Robot

Vérifiez que vous exécutez l’installation de npm à partir du répertoire approprié.

(Le fichier package.json peut par exemple être un répertoire supplémentaire vers le bas.) 

1
James Lawruk

Ces erreurs étranges se sont produites récemment sur ma machine OSX.

Je pourrais m'aider de la manière rapide et sale en exécutant:

Sudo chmod -R 777 /usr/local/lib/node_modules/

Quelque chose semblait avoir gâché les droits d'accès de tous les modules de nœuds globaux.

1
datayeah

Pour moi, la correction était d'ajouter une barre oblique après le nom du répertoire

0
Miniwe

J'ai eu un lien symbolique cassé vers node_modules dans un sous-dossier

0
Daniel Kukula

Assurez-vous de vérifier votre version de npm et de déterminer si elle pose des problèmes. J'avais le même problème au moment de cet article et j'ai découvert que ma version de npm (6.5) avait des problèmes. J'ai dû désinstaller et réinstaller la version 6.4.1 de npm, puis tout a recommencé à fonctionner correctement. 

0
smoosh911

Dans mon cas, ces étapes ont résolu mon problème:

  1. terminer npm processus (CTRL + C)
  2. supprimer tout le dossier
  3. créer un nouveau
  4. relancer npm
0
BartusZak

J'ai eu un problème similaire lors de la configuration du code standard. Il lisait mon fichier bundle.js en tant que répertoire. Donc, comme indiqué ici. EISDIR signifie que c'est un répertoire et non un fichier. Pour résoudre le problème, j'ai supprimé le fichier et viens de le recréer (il a été créé automatiquement) . Si vous ne trouvez pas le fichier (car il est caché), utilisez simplement le terminal pour le rechercher et le supprimer. 

0
Pablo DelaCruz

Je sais que ce n'est pas spécifiquement poser des questions sur pour toujours js .. mais google m'a conduit ici donc .. Pour moi, il était aussi simple qu'une barre oblique de fin.

Je viens de changer:

forever start -a -l /dev/null/ /var/www/node/my_file.js

À:

forever start -a -l /dev/null /var/www/node/my_file.js

Et l'erreur a disparu

0
Marc Alexander

J'ai eu ce problème avec gulp. Le problème était que gulp a ajouté une dépendance à mon fichier source et je pense que npm a essayé de l'ouvrir:

{
  "name": "name",
  "version": "2.0.0",
  "description": "",
  "main": "gulpfile.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "appname": "file://gulp",
    "gulp-concat": "^2.6.1",
    "gulp-electron": "^0.1.3",
    "gulp-Shell": "^0.5.2",
    "gulp-uglify": "^2.0.0",
    "gulp-util": "^3.0.7",
    "node-7z": "^0.4.0"
  }
}

Assurez-vous qu'il n'y a pas de références étranges dans votre fichier package.json.

0
Lanklaas

Dans mon cas, je rencontrais ce problème lors de l'installation de create-react-app dans MAC (Mojave OS) avec la commande suivante:

Sudo npm install create-react-app -g

et a des erreurs comme celle-ci:

npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/scheduler'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/symbol'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/testing'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/util'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/webSocket'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/symbol'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/testing'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/util'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/webSocket'

J'ai lu npm.community qui essaie d'installer sans Sudo:

npm install create-react-app -g

et cela a résolu mon problème .. !!

0
Ritesh

Effectuer une désinstallation complète, y compris la suppression des chemins, et la réinstallation a résolu le problème, très étrange.

Comment supprimer complètement node.js de Windows

0
AnotherMike

J'ai eu le même problème. Il y avait un dossier lié dans mon répertoire qui était à l'origine du problème. J'ai ajouté ce dossier pour ignorer la liste, puis il a bien fonctionné comme prévu.

0
deyujjal

Avait le même problème jusqu'à ce que j'ai essayé de supprimer le dossier .git. Ça a marché. Je suppose que ce type de problème peut avoir différentes causes.

0
José Augusto Paiva

Dans mon cas, j'ai oublié de passer le chemin complet de l'un des fichiers qu'il demandait. Après avoir passé le chemin complet du fichier a fonctionné :)

0
Rafael Paz