npm ERR! Błąd: EPERM: operacja niedozwolona, ​​zmień nazwę

109

Kiedy wykonuję, pojawia npm installsię ten błąd

npm ERR! Błąd: EPERM: operacja niedozwolona, ​​zmień nazwę C: \ projects ****** \ node_modules \ act-async-script '->' C: \ projects ******* \ node_modules.react-async-script .USUNĄĆ'

  • Uruchamiam cmd jako administrator
  • Biegałem npm cache cleanwcześniej
  • Upewniłem się, że wszystkie inne aplikacje nie mają nic związanego z node_modulesotwarciem
Rudzik
źródło
2
uruchomienie cmd jako administrator pracował dla mnie
Homer
W moim przypadku musiałem go uruchomić jako zwykły użytkownik (nie administrator) i zadziałało, wydaje się, że jest to konflikt uprawnień użytkownika. Ale wydaje się, że wszystkie inne rozwiązania podane tutaj npm clean, npm install nie są wymagane. Jest to kwestia uprawnień użytkownika. Jeśli więcej osób może potwierdzić, mogę opublikować nową odpowiedź.
MG Developer

Odpowiedzi:

125

W mojej sytuacji to pomogło. Przed przystąpieniem do wykonywania tych poleceń zamknij wszystkie wystąpienia VS Code.

  1. wyczyść pamięć podręczną za pomocą

    npm cache clean --force
  2. zainstaluj najnowszą wersję npm globalnie jako administrator:

    npm install -g npm@latest --force
  3. wyczyść pamięć podręczną za pomocą

    npm cache clean --force
  4. Spróbuj ponownie zainstalować komponent.

Mam nadzieję, że to rozwiąże Twój problem. Jeśli nie, możesz tymczasowo wyłączyć program antywirusowy i spróbować ponownie.

rzymski
źródło
1
dzięki @ kamil.ka to był mój problem w systemie Windows. Atom blokował plik package.json, więc npm install nie mógł go zmienić.
George
29
Ten sam komentarz dotyczy VS Code w systemie Windows… zamknij go, a problem zniknie
Martin Kearn,
1
Jak dla mnie, miałem uruchomiony inny proces węzłowy, w moim przypadku serwer json. Kiedyś przestałem, że pakiet został zainstalowany bez błędów.
EddieB,
W moim przypadku błędy takie jak „ERR! Enoent This is related to NPm not can find a file” zostały rozwiązane przez zamknięcie wszystkich instancji kodu Visual Studio.
Abhishek
Czasami nadzorujemy użycie webpacka, który spakował wszystkie pliki js, w tym niezaktualizowane linki do modułów np. app.js. Więc po aktualizacji npm spróbuj uruchomić npm run watch. Następnie, w moim przypadku, odpowiednie linki modułów zostały zaktualizowane w nowym pliku app.js.
Peter van der Lely
21

Nie package.json, ale z jakiegoś powodu mój node_modules/stał się tylko do odczytu. Resetowanie tego naprawiło ten problem.

Amit Bhosle
źródło
„Resetowanie” dla mnie oznaczał 1.zamykanie VS, 2.usuwanie node_modulesz FileExplorer 3.Ponowne mój komputer 4.Running npm install --force. Wtedy WRESZCIE zadziałało.
EGC
21

Mam to działające, gdy próbowałem zainstalować npm z opcją wymuszenia pobierania zasobów zdalnych, nawet jeśli lokalna kopia istnieje na dysku. Spróbuj biegać

npm install --force

Zaktualizowano Dla niektórych moich kolegów to rozwiązanie nie działało. Ale próbowaliśmy użyć przędzy zamiast npm. Działa (również szybciej) bez żadnych problemów przez cały czas

yarn install [package-name]
sree
źródło
Inni sugerowali wyłączenie oprogramowania AV. Dla mnie w sieci, w której jestem, nie było takiej opcji. Flaga --force rozwiązała ten problem za mnie
user2590928
Rozwiązałem swój problem tylko za pomocą włóczki, więc polecam dać mu szansę.
Ângelo Polotto
20

Jeśli chcesz uniknąć tej --forceopcji (która jest zawsze lepszym podejściem) , sugeruję upewnić się, że przestałeś uruchamiać projekt, ponieważ jest to zwykle główny powód blokowania plików w prawie 90% przypadków, które widziałem

Proponuję następujące kroki w podanej kolejności:

1- W zatrzymywaniu Angular ng si React zatrzymanie npm start zwykle rozwiązuje ten problem, ponieważ zwykle ten błąd występuje, gdy serwer deweloperski uruchamia projekt, ponieważ blokuje niektóre pliki, a wtedy npm nie może ich zaktualizować, co powoduje zgłoszenie tego błędu

2- Jeśli powyższe nie działa, spróbuj zamknąć edytor kodu, który ma otwarty obszar roboczy (może blokował niektóre pliki lub coś)

Spróbuj więc zamknąć edytor kodu i uruchomić:

npm install

3 - Jeśli nadal nie działa, może możesz wypróbować tę --forceopcję

npm install --force
Ahmed Elkoussy
źródło
2
To był mój problem, przeszyłem folder node_modules przez terminal w VS Code - z jakiegoś powodu nie całkiem usunął node_modules z mojego systemu plików i zablokował go. Dopiero gdy zamknąłem to okno VS Code i otworzyłem je z powrotem, faktycznie zostało usunięte i mogłem ponownie uruchomić instalację npm.
Stu Furlong
13

Otrzymałem ten sam błąd i według https://github.com/Medium/phantomjs/issues/19 mógł to być spowodowany przez twoje oprogramowanie antywirusowe. Wyłączyłem mój na czas instalacji i wykonałem "npm install" na cmd jako admin i zadziałało. Mam nadzieję że to pomoże.

vmaldosan
źródło
1
Na github.com/npm/npm/issues/12059 zostało to naprawione. Nie wiadomo, w jakim wydaniu to się pojawi. Według komentarzy wyłączenie AV nie zawsze działa.
user1821052
W moim przypadku musiałem zamknąć SourceTree podczas instalacji.
Dejan
13

U mnie właśnie zamknąłem edytor kodu (VS Code), a następnie uruchomiłem to samo polecenie. I to rozwiązuje problem dla mnie.

Sifat Haque
źródło
9

Jak zauważył Martin Kearn w komentarzu, zamknięcie programu Visual Studio rozwiązało te problemy z uprawnieniami npm. Najwyraźniej VS czasami blokuje pliki w node_modules.

jaycer
źródło
8

Dostałem to samo. Nigdzie tego nie znalazłem, ale dotarło do mnie, że nasze maszyny wirtualne mają tendencję do zmiany plików w stan tylko do odczytu. Otworzyłem więc package.jsonwłaściwości pliku i odznaczyłem je Read-onlyna karcie „Ogólne”.

Kroki

  1. Przejdź do package.jsonpliku.
  2. Kliknij prawym przyciskiem myszy i wybierz Właściwości .
  3. Na karcie Ogólne w sekcji Atrybuty usuń zaznaczenie opcji Tylko do odczytu .
  4. Kliknij Zastosuj, aby zastosować zmianę.
christo8989
źródło
Czytaj tylko dla mnie, chociaż pierwotny problem polegał na tym, że zwykle używam kodu do instalacji. W tym jednym przypadku otworzyłem nowe wystąpienie aplikacji w programie Visual Studio, więc mogłem przenieść niektóre zmiany ze starej wersji, a VS natychmiast rozpoczął instalację. Następnie otworzyłem kod, aby uruchomić instalację npm w normalny sposób i obie aplikacje wpadły w kłopoty. Po kilku niepowodzeniach masowo porzuciłem moduły węzłów z działającej wersji głównej naszej aplikacji, aby umożliwić mi cofnięcie przeniesienia zmian. Ten folder był tylko do odczytu, więc był dalej blokowany.
Matrim
8

Jest to typowy błąd powodowany przez program antywirusowy. Istnieje obejście dla przypadków takich jak mój, w których nie mogę wyłączyć A / V (zasady firmy).

Musisz zmienić opakowanie polyfills.jswewnętrzne Npm:

[NODE_HOME]/node_modules/npm/node_modules/graceful_fs/polyfills.js

Poszukaj tego stwierdzenia:

if (process.platform === "win32") {

Wewnątrz tej instrukcji znajduje się limit czasu na ponowienie próby w przypadku błędu. Problem polega na tym, że w niektórych przypadkach po przekroczeniu limitu czasu plik jest nadal zablokowany przez A / V. Rozwiązaniem jest wyrwanie limitu czasu i pozostawienie tej instrukcji w pętli. Zmiana z poprzednim kodem skomentowała:

if (platform === "win32") {

fs.rename = (function (fs$rename) { return function (from, to, cb) {
  var start = Date.now()
  var backoff = 0;
  fs$rename(from, to, function CB (er) {
    if (er
        && (er.code === "EACCES" || er.code === "EPERM")
        /*&& Date.now() - start < 60000*/) {
            console.log("Retrying rename file: " + from + " <> " + to)
            fs$rename(from, to, CB);
      /*setTimeout(function() {
        fs.stat(to, function (stater, st) {
          if (stater && stater.code === "ENOENT")
            fs$rename(from, to, CB);
          else
            cb(er)
        })
      }, backoff)*/
      if (backoff < 100)
        backoff += 10;
      return;
    }
    if (cb) cb(er)
  })
}})(fs.rename)
}
Bruno Guaitanele
źródło
Pan jest prawdziwym MVP.
Atanas Korchev
4

W moim przypadku coś się zablokowało i szybkie ponowne uruchomienie rozwiązało problem.

Kon
źródło
4

Miałem ten problem wiele razy tylko w systemie Windows, zwykle próbuję je w kolejności.

  1. npm install --force
  2. Sprawdź, czy node_modules jest ustawiony jako tylko do odczytu i usuń, jeśli tak jest
  3. Usunąć node_modules/
  4. Sprawdź, czy jest otwarty jakikolwiek edytor, który mógłby mieć dostęp do folderu głównego projektu
  5. Restart :(

Zwykle próba wykonania npm installjednego z tych kroków rozwiązuje problem.

Srivathsa Harish Venkataramana
źródło
2

Próba zmiany nazwy pliku na inną, która już istnieje, może spowodować EPERMbłąd w systemie Windows.

Zach Bloomquist
źródło
2

Miałem ten sam problem po aktualizacji do npm do 5.4.2, npm zaczynam dawać ten sam błąd dla większości poleceń npm. Pewne rozwiązanie sugeruje uruchomienie go --no-optional, ale nie zawsze działało.

Inni sugerowali obniżenie wersji, ale ja nie chciałem obniżać.

Podejrzewałem, że wystąpił problem z instalacją, nie wiem co to jest.

Więc ponownie zaktualizowałem mój npm:

npm i -g npm

i od tego czasu działało dobrze.

Salimd83
źródło
1

npm zawodziło dla mnie na scandir:

npm install -g webpack

... co może być spowodowane próbą "modyfikacji" plików przez npm, które zostały potencjalnie zablokowane przez inne procesy, jak wspomniano tutaj, oraz w kilku innych wątkach github. Po wymuszonym wyczyszczeniu pamięci podręcznej, weryfikacji pamięci podręcznej, uruchomieniu jako administrator, wyłączeniu AV, itp. Rozwiązaniem, które faktycznie działało, było zamknięcie wszystkiego, co mogło blokować pliki (tj. Ponowne uruchomienie komputera).

Mam nadzieję, że to pomoże komuś walczyć.

kmk09k
źródło
1

Miałem ten sam problem. Przyczyną błędu są nieobsługiwane znaki w ścieżce do pliku. Zastąpiłem cyrylicę w języku angielskim - pomogło.

Aleksey_Kopasov
źródło
1

Zrobiłem co następuje:

  1. Zaktualizowano npm do najnowszej wersji: npm install -g [email protected]
  2. usunął folder npm-cache z: c:/users/[username]/AppData/Roaming/npm-cache
  3. Czy pamięć podręczna została wyczyszczona: npm cache clean --force
  4. Uruchomiłem npm install.
RV.
źródło
1

Otwórz wiersz polecenia jako administrator i przejdź do lokalizacji projektu, a następnie uruchom npm install. to działało dla mnie.

Ashutosh dwivedi
źródło
1

W moim przypadku działając npm: v6.9.0&& node: v10.16.1on Windows, musiałem uruchomić mój CLI (git bash) jako administrator . Następnie pakiety zostały zainstalowane bez żadnych ostrzeżeń / błędów

ebram khalil
źródło
0

Moja odpowiedź brzmi: npm cache clean --forcenajpierw. Następnie uruchom, npm install -g [email protected]aby zainstalować wersję npm 5.3.0. u mnie ta wersja npm działa bez problemu.

UmaShankar
źródło
0

Po prostu usuń folder pakietu ze ścieżki pakietów globalnych npm. następnie ponownie zainstaluj pakiet. Zwróć uwagę, że pakiety są instalowane globalnie w: C: \ Users \ twoja-nazwa \ AppData \ Roaming \ npm \ node_modules

Ramin Ar
źródło
0

Miałem ten sam problem w systemie Windows 10. Po prostu wykonaj następujące kroki:

  • Otwórz cmd jako administrator.

  • zainstaluj zaktualizowany pakiet npm.

  • npm i -g npm

  • npm init - tak

Anand Tiwari
źródło
0

Uruchamianie poleceń jako superadministrator działało dla mnie. Spróbuj ponownie po zamknięciu edytora, w którym pracujesz.

pallav bohara
źródło
0

Ja też się z tym zmagałem. Ostatecznie rozwiązanie, które działa dobrze, jeśli używasz nvm:

cd ~/.nvm/versions/node/{your node version}/lib/ npm install npm

i to wszystko.

milion
źródło
0

Może to być spowodowane używanym oprogramowaniem antywirusowym. Jeśli nie możesz wyłączyć AV, możesz spróbować zmodyfikować globalną lokalizację instalacji NPM, gdy węzeł instaluje się w katalogu APPDATA, który jest aktywnie monitorowany przez silniki AV. Spróbuj uruchomić następujące polecenia-

npm config set prefiks "TWOJA NIESTANDARDOWA LOKALIZACJA" npm config set cache "TWOJA NIESTANDARDOWA LOKALIZACJA"

Usuń katalog node_modules i ponownie zainstaluj pakiet.

user3544913
źródło
0

W moim przypadku ustawienie typescript.disableAutomaticTypeAcquisitionw Visual Studio Code truewydawało się pomocne.

Markus Hettich
źródło
0

Zamknięcie PHPStorm rozwiązało problem.

Rualark
źródło
0

Zamknąłem VS, usunąłem folder node_modules.

Następnie pobiegł:

npm i -D -E clean-webpack-plugin@3.0.0 css- 
loader@3.4.2 html-webpack-plugin@3.2.0 mini-css- 
extract-plugin@0.9.0 ts-loader@6.2.1 typescript@3.7.5 
webpack@4.41.5 webpack-cli@3.3.10 

Następnie trzeba było zmienić właściwość, aby nie była tylko do odczytu w folderze node_modules po zakończeniu działania.

Następnie pobiegł:

npm i @microsoft/signalr @types/node

Następnie otwarto kopię zapasową projektu w VS i plik package.json wyglądał dobrze z zależnościami.

W tych samych liniach, co inni, mówią o tylko do odczytu w folderze node_modules i zamykaniu VS, aby uruchomić instalację npm.

Sam
źródło
0

Jeśli masz problem z PHP Storm:

  1. Zamknij kartę terminala
  2. Otwórz nową kartę terminala
2Fwebd
źródło