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ć.

Azoulay Jason
źródło
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.

antzshrek
źródło
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

yemiOdetola
źródło
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.

OArnarsson
źródło
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

Attila123
źródło
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.

userA789
źródło
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.

KT.
źródło
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.

Mały mózg
źródło
1

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

Kjeld
źródło
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
Sezayir Dagtekin
źródło
1

To zadziałało dla mnie

npm install -g --force gatsby-cli

Dzięki

Dhinesh
źródło
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 
Alberto
źródło
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.

nimodka
źródło