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

je suis bloqué avec cette erreur, peu importe dans quel répertoire Je suis, 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 Filesnodejsnode.exe',
1 verbose cli   'C:Program Filesnodejsnode_modulesnpmbinnpm-cli.js' ]
2 info using npm@2.14.12
3 info using node@v4.2.6
4 verbose stack Error: EISDIR: illegal operation on a directory, read
4 verbose stack     at Error (native)
5 verbose cwd C:Usersme
6 error Windows_NT 6.1.7601
7 error argv "C:Program Filesnodejsnode.exe" "C:Program Filesnodejsnode_modulesnpmbinnpm-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é et désinstaller/réinstaller nodejs plusieurs fois, j'ai même supprimé les dossiers npm et npm-cache dans C:UsersmeAppDataRoaming. Je ne suis pas sûr de ce qui a mal tourné pour causer ça. Une seconde, il 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 il donne cette erreur dans n'importe quel répertoire. Je note que l'exécution d'une invite de commande en tant qu'administrateur ne donne pas cette erreur. Je tire mes cheveux ce vendredi soir en essayant d'obtenir cette réparation, toute aide serait grandement apprécié!

31
demandé sur AnotherMike 2016-01-23 05:43:37

13 réponses

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

26
répondu user1460043 2016-02-16 10:04:37

EISDIR signifie erreur, est le répertoire ". Cela signifie que NPM essaie de faire quelque chose à un fichier mais c'est un répertoire . Dans votre cas, NPM essaie de" lire " un fichier qui est un répertoire (ligne: 4). Depuis l'opération ne peut pas être fait l'erreur est levée.

trois choses à vérifier ici.

  1. assurez-vous que le fichier exister. Si elle ne le fait pas, vous devez le créer. (Si la NGP dépend de toute information spécifique dans le fichier, vous aurez besoin d'avoir cette information là).
  2. assurez-vous qu'il s'agit bien d'un fichier et non d'un répertoire.
  3. il a les bonnes permissions. Vous pouvez modifier le fichier pour avoir toutes les permissions avec "sudo chmod 777 FILE_NAME". (Attention: vous donnez des permissions de lecture, D'écriture et D'exécution à chacun sur ce fichier)
63
répondu MauricioLeal 2017-03-08 16:55:55

j'ai eu le même problème sur Mac OS X (installé avec le homebrew), et l' .npmmrc n'est pas la seule variable de configuration de noeud de lieu stockée. Il y a un fichier de configuration glocal npmrc dans /usr/local/etc que vous devez éditer en utilisant cette commande:

sudo nano npmrc

supprimez la ligne ca=, ou quelque soit le paramètre de configuration qui a cassé votre installation, sauvegardez ce fichier, et réessayez npm, et vous devriez le voir fonctionner.

5
répondu rncrtr 2016-07-27 17:54:25

dans mon cas je recevais le" EISDIR: opération illégale sur un répertoire, lire " parce que dans mon .angulaire de la cli.fichier json, je n'ai pas de fournir un chemin d'accès complet dans la section "scripts:"

par exemple j'ai eu

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

en fait, il aurait dû être

"scripts": [
        "../node_modules/hammerjs/hammer.min.js",
        "../node_modules/moment/min/moment.min.js"
      ],
2
répondu Rob 2018-01-19 09:07:01

si votre problème est associé au Packager natif React. Essayez de réinitialiser le cache avec react-native start --reset-cache .

1
répondu Progoogler 2018-02-12 19:05:23

faire une désinstallation complète, y compris supprimer les chemins, etc et réinstaller a résolu le problème, très étrange problème cependant.

comment supprimer complètement le noeud.js de Windows

0
répondu AnotherMike 2016-01-25 19:34:15

j'ai eu ce problème avec gulfp. Le problème est 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 paquet.fichier json.

0
répondu Lanklaas 2016-11-25 12:08:22

j'ai eu un problème similaire lors de la mise en place du code boilerplate. C'était à la lecture de mon bundle.js fichiers dans un répertoire. Donc, comme indiqué ici. EISDIR signifie son répertoire a et non un fichier. Pour résoudre le problème, j'ai supprimé le fichier et juste recréé (il a été initialement créé automatiquement). Si vous ne pouvez pas trouver le fichier (parce qu'il est caché), utilisez simplement le terminal pour le trouver et le supprimer.

0
répondu Pablo DelaCruz 2017-06-01 22:01:47

vérifiez que vous utilisez npm install à partir du répertoire approprié.

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

0
répondu James Lawruk 2017-08-02 11:57:18

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

0
répondu José Augusto Paiva 2018-01-19 21:39:28

j'ai eu le même problème. Il y avait un dossier lié dans mon répertoire qui causait le problème. j'ai ajouté ce dossier pour ignorer list et ensuite il a commencé à fonctionner correctement comme prévu.

0
répondu ujjaldey 2018-05-31 16:27:09

je sais que ce n'est pas vraiment une question de forever js.. mais google m'a mené ici ainsi.. Pour moi, c'était aussi simple qu'un slash final.

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
répondu Marc Alexander 2018-06-01 22:35:48

pour moi fixer était ajouter slash après le nom de répertoire

0
répondu Miniwe 2018-06-20 20:10:34