webentwicklung-frage-antwort-db.com.de

npm ERR! Fehler: EPERM: Vorgang nicht zulässig, umbenennen

Beim Ausführen von "npm install" erhalte ich diesen Fehler 

npm ERR! Error: EPERM: operation not permitted, rename C:\projects\******\node_modules\react-async-script' -> 'C:\projects\*******\node_modules\.react-async-script.DELETE'
  • Ich lasse die cmd als Administrator laufen
  • Ich habe npm Cache vorher sauber gemacht
  • Ich habe sichergestellt, dass alle anderen Anwendungen nichts mit node_modeules zu tun haben 
35
Robin

In meiner Situation hat es geholfen:

  1. sauberer Cache mit 

    npm cache clean --force
    
  2. installieren Sie die neueste Version von npm global als admin:

    npm install -g [email protected] --force
    
  3. sauberer Cache mit 

    npm cache clean --force
    
  4. Versuchen Sie, Ihre Komponente erneut zu installieren.

Ich hoffe, das Problem wird behoben. Wenn dies nicht hilft, versuchen Sie, das Antivirenprogramm für eine Weile zu wechseln, und wiederholen Sie es.

41
Roman

Ich habe es funktioniert, als ich versucht hatte, npm install mit einer force-Option zu installieren, um entfernte Ressourcen abzurufen, selbst wenn eine lokale Kopie auf der Festplatte vorhanden ist. Versuchen Sie zu laufen 

npm install --force

Aktualisiert Für einige meiner Kollegen funktionierte diese Lösung nicht. Wir haben jedoch versucht, Garn anstelle von npm zu verwenden. Es funktioniert (auch schneller) ohne Probleme

yarn install [package-name]
16
sree

Wenn Sie die Option --force vermeiden möchten (was immer ein besserer Ansatz ist) , Ich schlage vor, sicherzustellen, dass Sie das Projekt nicht mehr ausführen, da dies normalerweise der Hauptgrund für das Sperren der Dateien in fast 90% der Fälle ist, die ich gesehen habe

Ich schlage die folgenden Schritte in dieser Reihenfolge vor:

1- In Angular anhalten ng s Und in React anhalten npm startlöst normalerweise dieses Problem, weil normalerweise dies Fehler tritt auf, wenn ein Entwicklungsserver das Projekt ausführt, während er einige Dateien sperrt und npm sie dann nicht aktualisieren kann, wodurch dieser Fehler ausgegeben wird

2- Wenn dies nicht funktioniert, schließen Sie den Code-Editor, in dem der Arbeitsbereich geöffnet ist. (Möglicherweise wurden einige Dateien gesperrt oder so)

Versuchen Sie also, den Code-Editor zu schließen und auszuführen:

npm install

3- Wenn es immer noch nicht funktioniert, können Sie vielleicht die Option --force Ausprobieren

npm install --force
12
Ahmed Elkoussy

Nicht package.json, aber aus irgendeinem Grund wurde mein node_modules/ schreibgeschützt. Zurücksetzen das behoben.

9
Amit Bhosle

Ich habe dieselbe Fehlermeldung erhalten und könnte laut https://github.com/Medium/phantomjs/issues/19 durch Ihre Antivirensoftware verursacht werden. Ich habe meins für die Dauer der Installation deaktiviert und "npm install" als Administrator auf cmd ausgeführt und es hat funktioniert .. _. Hoffe das hilft.

8
vmaldosan

Ich habe dasselbe bekommen. Ich habe das nirgendwo gefunden, aber es hat mich getroffen, dass unsere VMs dazu neigen, Dateien in einen schreibgeschützten Zustand zu ändern. Also habe ich die Dateieigenschaften von package.json geöffnet und Read-only auf der Registerkarte "Allgemein" deaktiviert.

Schritte

  1. Gehen Sie zur package.json-Datei.
  2. Klicken Sie mit der rechten Maustaste und wählen Sie Eigenschaften.
  3. Deaktivieren Sie auf der Registerkarte General im Bereich Attributes Read-only .
  4. Klicken Sie auf Apply , um die Änderung zu übernehmen.
5
christo8989

Ich habe dieses Problem mehrmals nur in Windows gehabt. Ich versuche diese in der Regel in der Reihenfolge.

  1. npm install --force
  2. Prüfen Sie, ob node_modules auf read-only gesetzt ist und Remove, wenn dies der Fall ist
  3. Knotenmodule löschen /
  4. Prüfen Sie, ob ein Editor geöffnet ist, der auf den Stammordner des Projekts zugreifen kann
  5. Neustart :(

Wenn Sie npm nach einem dieser Schritte installieren, wird dies normalerweise behoben.

Wie Martin Kearn in einem Kommentar ausführte, wurden diese Probleme mit der Npm-Berechtigung durch Schließen von Visual Studio für mich behoben. Offensichtlich sperrt VS manchmal Dateien in node_modules.

3
jaycer

Nach dem Update auf npm auf 5.4.2 hatte ich dasselbe Problem. Npm gab für die meisten npm-Befehle denselben Fehler aus. Einige Lösungen schlagen vor, es mit --no-optional auszuführen:

es hat nicht immer funktioniert.

andere schlugen vor, das downgrade durchzuführen, ich wollte nicht downgraden.

Ich hatte den Verdacht, dass es ein Problem mit der Installation gab, nicht sicher, was es ist.

also habe ich meine npm erneut aktualisiert:

npm i -g npm

und hat seitdem gut funktioniert.

2
Salimd83

Dies ist ein typischer Fehler, der durch Antivirus verursacht wird. Es gibt eine Problemumgehung für Fälle wie meines, bei denen ich A/V (Unternehmensrichtlinien) nicht deaktivieren kann. 

Sie müssen den polyfills.js im Npm-Paket ändern:

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

Suchen Sie nach dieser Aussage:

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

Innerhalb dieser Anweisung gibt es eine Zeitüberschreitung, die im Fehlerfall erneut versucht wird. Das Problem ist, dass die Datei in einigen Fällen nach dem Timeout immer noch vom A/V gesperrt ist. Die Lösung wird aus dem Timeout herausgeholt und diese Anweisung in einer Schleife gelassen. Die Änderung mit dem vorherigen Code wurde kommentiert:

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)
}
2

Öffnen Sie den Befehl Aufforderung als Administrator, navigieren Sie zum Projektspeicherort und führen Sie dann npm install aus. es hat für mich funktioniert.

1

Für einige kann der Ordner AppRoot\npm ein Problem sein. Manchmal ist der AppRoot-Ordner als Netzwerkfreigabe markiert, und Antivirus blockiert daher das Zeug. Folgen Sie dem Link für eine vollständige Lösung.

https://alastaircrabtree.com/fixing-intermittant-eperm-operation-not-permitted-on-npm-install/

Ich hoffe das hilft.

1
Aryan

npm schlug bei mir um scandir fehl für:

npm install -g webpack

... was möglicherweise darauf zurückzuführen ist, dass npm versucht, Dateien zu "ändern", die möglicherweise von anderen Prozessen gesperrt wurden (siehe hier und in einigen anderen Github-Threads). Nach erzwungener Bereinigung des Caches, Überprüfung des Caches, Ausführung als Administrator, Deaktivierung des AV usw. schloss die Lösung, die tatsächlich für mich funktionierte, alles, was die Dateien sperren könnte ( dh meinen Computer neu starten).

Ich hoffe, das hilft jemandem beim Kämpfen.

1
kmk09k

Ich hatte das gleiche Problem. Der Grund für den Fehler sind nicht unterstützte Zeichen im Pfad zur Datei. Ersetzen Sie den Kyrillisch auf Englisch - es hat geholfen.

1
Aleksey_Kopasov

In meinem Fall wurde etwas eingesperrt und durch einen schnellen Neustart behoben.

1
Kon

Der Versuch, eine Datei in einen anderen bereits vorhandenen Dateinamen umzubenennen, kann unter Windows zu einem EPERM-Fehler führen.

1
Zach Bloomquist

Meine Antwort ist, zuerst npm cache clean --force zu tun. Führen Sie dann npm install -g [email protected] aus, um die Version npm 5.3.0 zu installieren. für mich funktioniert diese npm-version problemlos.

0
UmaShankar

Dies kann an Ihrer Antivirensoftware liegen. Wenn Sie AV nicht deaktivieren können, können Sie versuchen, Ihren globalen NPM-Installationsort zu ändern, während der Knoten in das APPDATA-Verzeichnis installiert wird, das von AV Engines aktiv überwacht wird. Führen Sie die folgenden Befehle aus:

npm config set Präfix "DEIN BENUTZERDEFINIERTER STANDORT" npm config set Cache "DEIN BENUTZERDEFINIERTER STANDORT"

Löschen Sie das Verzeichnis node_modules und installieren Sie das Paket erneut.

0
user3544913

Für mich habe ich gerade den Code-Editor (VS-Code) geschlossen und dann den gleichen Befehl ausgeführt. Und das löst das Problem für mich.

0
Sifat Haque

In meinem Fall schien es hilfreich zu sein, TypeScript.disableAutomaticTypeAcquisition in Visual Studio Code auf true zu setzen.

0
Markus Hettich

Ich habe meine Fensterdisketten mit dem Metadaten-Flag erneut eingebunden und sofort geholfen: https://devblogs.Microsoft.com/commandline/chmod-chown-wsl-improvements/

danach muss Sudo nicht mehr für npm-Befehle verwendet werden, da die Metadaten die Windows- und Linux-Datei-/Verzeichnisberechtigungen in Schach halten.

0
Lemon

Das Ausführen von Befehlen als Super Admin hat bei mir funktioniert. Versuchen Sie es erneut, nachdem Sie den Editor geschlossen haben, in dem Sie gerade arbeiten.

0
pallav bohara

Ich habe folgendes gemacht: 

  1. Npm auf die neueste Version aktualisiert: npm install -g [email protected] 
  2. der npm-cache Ordner wurde gelöscht aus: c:/users/[username]/AppData/Roaming/npm-cache
  3. Cache wurde gelöscht: npm cache clean --force
  4. Lief den npm install.
0
Rahul Verma

Ich hatte auch damit zu kämpfen. Ich habe endlich eine Lösung, die gut funktioniert, wenn Sie NVM verwenden:

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

und das ist es.

0
millenion

Löschen Sie einfach den Paketordner aus dem Pfad der globalen npm-Pakete. Installieren Sie anschließend das Paket erneut. __ Beachten Sie, dass die Pakete global installiert sind in: C:\Users\Ihr_Name\AppData\Roaming\npm\node_modules

0
Ramin Ar

Ich hatte das gleiche Problem in Windows 10. Gehen Sie einfach folgendermaßen vor:

  • Öffne cmd als Administrator.

  • installiere das aktualisierte npm-Paket.

  • npm i -g npm

  • npm init --yes

0
Anand Tiwari

In meinem Fall, in dem npm: v6.9.0 && node: v10.16.1 auf Windows ausgeführt wurde, musste ich meine CLI (git bash) als Administrator ausführen. Dann wurden Pakete ohne Warnungen/Fehler installiert

0
ebram khalil