npm ERR! Refus de supprimer / coder EEXIST

86

J'exécute juste un simple npm installet j'obtiens cette erreur.

npm ERR! path /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/which
npm ERR! code EEXIST
npm ERR! Refusing to delete /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/which: is outside /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/which and not a link
npm ERR! File exists: /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/which
npm ERR! Move it away, and try again

C'est la première fois que j'obtiens cette erreur et je ne sais pas quoi faire.

Azoulay Jason
la source
avez-vous également essayé de courir sudo npm install?
antzshrek
Oui, il a fait la même chose
Azoulay Jason
1
J'ai également vu ce problème lorsque j'hébergais un projet dans un dossier en cours de synchronisation avec Google File Stream. Après avoir déplacé le projet sur un "disque local", j'ai pu l'exécuternpm install
Trevor le

Réponses:

134

Pas

  1. Supprimez node_modulescomplètement le répertoire.
  2. Exécutez à npm installnouveau.

Cela devrait aider.

antzshrek
la source
Cela n'a pas pu s'installer après cela, avec npm-cli.js manquant. J'ai fini par faire la solution de changement de nom ci-dessous avec la suppression des fichiers npx
David Bradley
cela fonctionne, oui, mais la suppression et l'installation prennent beaucoup de temps. cette solution n'est pas optimale.
jasie
1
Maintenant, j'obtiens "Impossible de trouver le module C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js"
David Klempfner
1
@DavidKlempfner, vous voudrez peut-être vérifier cette autre réponse SO stackoverflow.com/questions/24721903/…
antzshrek
27

C'est ainsi que j'ai résolu le mien après avoir `` cherché sur Google '' ...

  • Accédez au répertoire dans lequel votre nœud a été installé
  • renommer vos fichiers npm.cmdetnpm
  • Essayez d'exécuter à nouveau l'installation
  • En cas de succès, supprimez les fichiers que vous avez renommés précédemment npmetnpm.cmd
  • si non, :( :(

Les commandes cli ici ... au cas où vous ne voudriez pas renommer et bourrer

cd %ProgramFiles%\nodejs
ren npm.cmd npm2.cmd
ren npm npm2 
npm2 install npm@latest -g

del npm2
del npm2.cmd

Rolf-Schmidiger

yemiOdetola
la source
4
Cette réponse a fonctionné pour moi, mais j'ai également dû renommer npx.cmd et npx en npx2.cmd et npx2. J'ai également dû faire fonctionner le terminal en tant qu'administrateur.
raphadko
4
Cela a fonctionné pour moi aussi. J'ai dû renommer npx et npx.cmd ainsi que npm et npm.cmd. J'ai ensuite fait "npm_ update -g npm" et cela a fonctionné. Peut-être que cela avait quelque chose à voir avec le fait que je n'ai pas installé nodejs via un programme d'installation, mais que je l'ai plutôt extrait d'un fichier zip.
Igor
1
besoin également de renommer npx.cmd
Reza
1
J'ai supprimé les fichiers npx au lieu de les renommer qui fonctionnaient, de nouveaux ont été créés.
David Bradley
2
Cela a fonctionné pour moi aussi. @DavidKlempfner exécutez la commande en utilisant npm2 maintenant qu'elle est renommée. Après cela, j'ai rencontré un problème concernant le refus de supprimer `... \ npm \ node_modules * \ node_modules \ .bin * Je viens de supprimer manuellement les dossiers .bin à chaque fois qu'il se plaignait (comme deux ou trois fois) et cela fonctionnait.
Zakk Diaz
7

Essayez de courir npm update -g npmpuis exécutez à npm inouveau.
Si cela ne fonctionne pas, cela peut npm cache cleanaider.

Si cela ne fonctionne pas non plus, vous devriez envisager de supprimer le node_modulesdossier de votre application et de le relancer npm i.
Si vous n'avez toujours pas de chance, je vous suggère de supprimer package-lock.jsonle node_modulesdossier et avant de démarrer npm i.

OArnarsson
la source
2
@AzoulayJason Je viens de le réaliser. Si vous utilisez la dernière version de la CLI angulaire, il est fortement recommandé d'utiliser à la yarnplace de npm i. Il y a une sorte de bogue lié à npm dans la dernière version. J'espère que cela aide!
OArnarsson
À partir de npm @ 5, le cache npm se guérit automatiquement des problèmes de corruption et les données extraites du cache sont garanties valides. Si vous voulez vous assurer que tout est cohérent, utilisez plutôt 'npm cache verify'.
Ruan
4

J'ai eu ce problème sous Linux (npm est la dernière version 5.6.0 actuelle), car j'ai créé une archive tgz et j'avais besoin de --déférencer certains liens symboliques (voir man tar) lors de la création d'une archive tgz (qui a été copiée sur la VM pour les tests ). De cette façon, de nombreux liens symboliques sont node_modules/.binégalement devenus des fichiers normaux. npm dit dans le message d'erreur, .eg

npm ERR! Refuser de supprimer /path/to/node_modules/.bin/jest: est en dehors de / path / to / node_modules / jest et non un lien

Attila123
la source
1

J'ai eu une erreur similaire (la mienne n'est pas @angular),
résolue en supprimant et en réinstallant le nœud avec l'installateur.

userA789
la source
1

J'ai eu le même problème et il s'est avéré que le problème était qu'une instance parasite de npmfonctionnait quelque part en arrière-plan au moment où j'essayais de faire l'installation (c'était Webpack npm run serve, pour être précis).

L'arrêt de l'instance en cours d'exécution a résolu le problème.

KT.
la source
1

J'ai eu un problème similaire et ce qui semble avoir fonctionné est de désinstaller npm et de le réinstaller, en veillant à être connecté en tant qu'utilisateur approprié pour la réinstallation. Je pense que j'ai déjà installé npm en tant que root, mais que je mettais à jour un package en tant qu'utilisateur régulier (sudo).

Petit cerveau
la source
1

J'ai eu ce problème en travaillant sur un disque virtuel chiffré. Le déplacement du projet sur un disque normal a résolu le problème.

Kjeld
la source
1
  1. Désinstaller node.js du panneau de configuration
  2. Supprimer les dossiers ci-dessous
C:\Program Files (x86)\Nodejs
C:\Program Files\Nodejs
C:\Users\{User}\AppData\Roaming\npm (or %appdata%\npm)
C:\Users\{User}\AppData\Roaming\npm-cache (or %appdata%\npm-cache)
C:\Users\{User}\.npmrc (and possibly check for that without the . prefix too)
C:\Users\{User}\AppData\Local\Temp\npm-*
  1. Installez à nouveau node.js
Sezayir Dagtekin
la source
1

Cela a fonctionné pour moi

npm install -g --force gatsby-cli

Merci

Dhinesh
la source
0

J'ai la même erreur mais quand j'essayais de mettre à jour le module "cordova" vers la version 9. Je l'ai corrigé en forçant l'installation avec --force. La commande npm que j'ai utilisée:

npm i -g --force cordova@9 
Alberto
la source
0

Pour les utilisateurs de Windows (spécifiques à Windows 10), cela doit résoudre le problème.

Aller à ce dossier:

C:\Users\[UserName]\AppData\Roaming\

supprimez ou renommez les dossiers npmet npm-cache.

Cela a résolu mon problème sous Windows.

nimodka
la source