npm ERR! Odmowa usunięcia / zakodowania EEXIST


87

Po prostu uruchamiam prosty npm installi otrzymuję ten błąd.

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

Po raz pierwszy pojawia się ten błąd i nie wiem, co robić.


czy próbowałeś też biegać sudo npm install?
antzshrek

Tak, zrobiło to samo
Azoulay Jason

1
Widziałem również ten problem, gdy hostowałem projekt w folderze, który był synchronizowany z Google File Stream. Po przeniesieniu projektu na „dysk lokalny” mogłem uruchomićnpm install
Trevor

Odpowiedzi:


135

Kroki

  1. node_modulesCałkowicie usuń katalog.
  2. Biegnij npm installponownie.

To powinno pomóc.


Po wykonaniu tej czynności nie udało się zainstalować z powodu braku npm-cli.js. Skończyło się na tym, że wykonałem poniższe rozwiązanie zmiany nazwy wraz z usunięciem plików npx
David Bradley

to działa, ale usuwanie i instalacja zajmuje dużo czasu. to rozwiązanie nie jest optymalne.
jasie

1
Teraz pojawia się komunikat „Nie można znaleźć modułu C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js '
David Klempfner

1
@DavidKlempfner możesz sprawdzić tę inną odpowiedź SO stackoverflow.com/questions/24721903/ ...
antzshrek

27

W ten sposób rozwiązałem swój po „googlowaniu” w ...

  • Przejdź do katalogu, w którym został zainstalowany węzeł
  • zmień nazwę plików npm.cmdinpm
  • Spróbuj ponownie uruchomić instalację
  • Jeśli się powiedzie, usuń pliki, których nazwy zostały zmienione wcześniej npminpm.cmd
  • Jeśli nie, :( :(

Polecenia CLI tutaj ... na wypadek, gdybyś nie chciał zmieniać nazwy i rzeczy

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

del npm2
del npm2.cmd

Rolf-schmidiger


4
Ta odpowiedź działała u mnie, ale musiałem również zmienić nazwy npx.cmd i npx na npx2.cmd i npx2. Musiałem też uruchomić terminal jako administrator.
raphadko

4
Dla mnie to też zadziałało. Musiał zmienić nazwy npx i npx.cmd, a także npm i npm.cmd. Potem zrobiłem "npm_ update -g npm" i zadziałało. Być może miało to coś wspólnego z faktem, że nie zainstalowałem nodejs przez instalator, ale raczej wyodrębniłem go z pliku zip.
Igor

1
również trzeba zmienić nazwę npx.cmd
Reza

1
Usunąłem pliki npx zamiast zmienić ich nazwy, które działały, powstały nowe.
David Bradley

2
U mnie też to zadziałało. @DavidKlempfner uruchom polecenie przy użyciu npm2 teraz, gdy została zmieniona. Potem napotkałem problem dotyczący odmowy usunięcia `... \ npm \ node_modules * \ node_modules \ .bin * Po prostu ręcznie usuwałem foldery .bin za każdym razem, gdy narzekał (jak dwa lub 3 razy) i zadziałało.
Zakk Diaz

7

Spróbuj uruchomić, npm update -g npma następnie uruchom npm iponownie.
Jeśli to nie zadziała, może npm cache cleanpomoże.

Jeśli to również nie zadziała, powinieneś rozważyć usunięcie node_modulesfolderu w aplikacji i ponowne uruchomienie npm i.
Jeśli nadal nie mają szczęścia, proponujemy usunięcie package-lock.jsoni ten node_modulesfolder, przed uruchomieniem npm i.


2
@AzoulayJason Właśnie sobie sprawę. Jeśli używasz najnowszej wersji kątowego interfejsu CLI, zdecydowanie zaleca się użycie yarnzamiast npm i. W najnowszej wersji jest jakiś błąd związany z npm. Mam nadzieję, że to pomoże!
OArnarsson

Począwszy od npm @ 5, pamięć podręczna npm samonaprawia się po problemach z uszkodzeniem, a dane wyodrębnione z pamięci podręcznej są prawidłowe. Jeśli chcesz się upewnić, że wszystko jest spójne, użyj zamiast tego opcji „npm cache verify”.
Ruan

4

Mam ten problem na Linuksie (npm to najnowsza wersja 5.6.0), ponieważ utworzyłem archiwum tgz i musiałem - odnieść się do niektórych linków symbolicznych (patrz man tar) podczas tworzenia archiwum tgz (które zostało skopiowane do maszyny wirtualnej w celu przetestowania) ). W ten sposób wiele linków symbolicznych node_modules/.binstało się również zwykłymi plikami. npm mówi w komunikacie o błędzie, .eg

npm ERR! Odmowa usunięcia /path/to/node_modules/.bin/jest: jest poza / path / to / node_modules / jest i nie jest linkiem


1

Miałem podobny błąd (mój nie jest @angular),
rozwiązany przez usunięcie i ponowne zainstalowanie węzła za pomocą instalatora.


1

Miałem ten sam problem i okazało się, że problem polegał na tym, że przypadkowa instancja programu npmdziałała gdzieś w tle w tym samym czasie, gdy próbowałem przeprowadzić instalację (a dokładniej był to Webpack npm run serve).

Zatrzymanie działającej instancji rozwiązało problem.


1

Miałem podobny problem i wydaje się, że zadziałało odinstalowanie npm i ponowne zainstalowanie go, upewniając się, że jesteś zalogowany jako właściwy użytkownik do ponownej instalacji. Myślę, że wcześniej instalowałem npm jako root, ale aktualizowałem pakiet jako zwykły (sudo) użytkownik.


1

Miałem ten problem podczas pracy na wirtualnym, zaszyfrowanym dysku. Przeniesienie projektu na zwykły dysk rozwiązało problem.


1
  1. Odinstaluj node.js z panelu sterowania
  2. Usuń poniższe foldery
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. Zainstaluj ponownie node.js

1

To zadziałało dla mnie

npm install -g --force gatsby-cli

Dzięki


0

Mam ten sam błąd, ale kiedy próbowałem zaktualizować moduł "cordova" do wersji 9. Naprawiłem go wymuszając instalację z --force. Polecenie npm, którego użyłem:

npm i -g --force cordova@9 

0

W przypadku użytkowników systemu Windows (specyficznych dla systemu Windows 10) musi to rozwiązać problem.

Idź do tego folderu:

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

usunąć lub zmienić nazwy folderów npmi npm-cache.

To rozwiązało mój problem w systemie Windows.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.