So löschen Sie node_modules - Deep Nested Folder in Windows


229

Beim Versuch, das Verzeichnis node_modules zu entfernen, das erstellt wurde von npm install:

Die Quelldateinamen sind größer als vom Dateisystem unterstützt. Versuchen Sie, an einen Ort mit einem kürzeren Pfadnamen zu wechseln, oder versuchen Sie, ihn in kürzere Namen umzubenennen, bevor Sie diesen Vorgang ausführen

Ich habe auch versucht shift+ deleteund habe immer noch das gleiche Problem.


try renaming to shorter name(s) before attempting this operation
SLaks

3
Vielen Dank für Ihren Vorschlag, @ SLaks! Ich hätte erwähnen sollen, dass ich das auch versucht habe, aber die Dateien und Verzeichnisse sind vielfältig und tiefgreifend. Es enthält Dinge wie C: \ Benutzer \ mein_Benutzername \ projs \ backend \ knotenmodule \ imagemin \ knotenmodule \ imagemin-optipng \ knotenmodule \ optipng-bin \ knotenmodule \ bin-wrapper \ knotenmodule \ bin-check \ knotenmodule \ ausführbare \ knotenmodule \ meow \ knotenmodule \ camelcase-keys \ knotenmodule \ ... und es geht weiter. Es ist unpraktisch, Dateien manuell umzubenennen, und ich hoffe, es gibt einfachere Möglichkeiten, ohne ein Programm zu schreiben
leoh

1
Webstorm kann alle löschen.
Ozzimpact

Ich habe das Long Path Fixer-Tool verwendet und diesen Ordner ".meteor" erfolgreich entfernt. ( long-path-fixer.en.softonic.com )
Vu Doan

RUN INSTALL, npm installiere rimraf -g, RUN DELETE, rimraf node_modules
Jinna Balu

Antworten:


436

Da dies das beste Google-Ergebnis ist, hat dies für mich funktioniert:

Installieren Sie RimRaf:

npm install rimraf -g

Und im Projektordner löschen Sie den Ordner node_modules mit:

rimraf node_modules

Wenn Sie rekursiv löschen möchten:

rimraf .\**\node_modules

[ http://www.nikola-breznjak.com/blog/nodejs/how-to-delete-node_modules-folder-on-windows-machine/ ]


funktioniert hier nicht: "Fehler: ENOTEMPTY, Verzeichnis nicht leer". und mitgelieferter Link funktioniert nicht!
Olefrank

7
Ich bin der Autor des Blogposts. @olefrank: Dies passiert normalerweise, wenn Sie versuchen, den gesamten Ordner (nicht nur node_modules) zu löschen, und auch, wenn Sie den Ordner zufällig in einem Explorer-Fenster geöffnet haben. usagidon, danke für die Verknüpfung der Originalquelle.
Nikola

2
Das ist nicht nützlich, wenn Sie kein NodeJS haben oder versuchen, die globalen Module von NodeJS nach der Deinstallation zu löschen (deshalb musste ich
Robocopy

1
Ich werde meine 2 Cent hier hinzufügen, um etwas genauer auf die Frage einzugehen. Sie können alle node_modules-Ordner rekursiv (unter Verwendung eines Globbing-Musters) wie folgt löschen:rimraf .\**\node_modules
Artif3x

1
@ Artif3x 'Commnent sollte als die beste Antwort markiert werden. danke für den Tipp zum rekursiven Löschen :-)
Juan Stoppa

109

Ich habe das einfach mit Winrar gemacht. Dies scheint eine seltsame Lösung zu sein, funktioniert aber sehr gut.

  • Rechtsklick auf node_modulesOrdner
  • Wählen Sie Add to archive ...aus dem Menü.
  • Der Winrar-Dialog wird geöffnet
  • Aktivieren Sie einfach die Option delete files after archiving
  • Vergessen Sie nicht, die Datei node_modules.rar nach Abschluss zu löschen.


[UPDATE] Dies funktioniert auch mit 7Zip



7
wow das ist hinterhältig! +1 Ich habe Robocopy verwendet, obwohl dies anscheinend mit einer neuen npm oder so behoben wurde.
Erp

1
@ChrisS Wie funktioniert es mit 7Zip? Besonders bei Verwendung der GUI!
Bennos

4
2016 (und insbesondere 2018) sollten Sie nicht so schlau sein müssen, um eine Reihe von Dateien zu löschen.
Webelo

73

LÖSCHEN Sie nur mit dem DOS-Befehl ohne Installation:

Erstellen Sie einen leeren Ordner "test" auf Laufwerk C oder D und verwenden Sie den folgenden DOS-Befehl

robocopy /MIR c:\test D:\UserData\FolderToDelete > NUL

Nachdem Sie den obigen Befehl ausgeführt haben, ist Ihr Ordner leer. Jetzt können Sie den Ordner löschen.

Machen Sie sich keine Sorgen, Ihr Testordner ist immer leer, sodass Sie ihn jederzeit löschen können.


12
beste Antwort, weil Sie nichts installieren müssen
luschn

1
Nachdem ich rimraf ausprobiert und einen Netzwerkordner hinzugefügt habe, ist dies die sauberste Lösung, die ich gefunden habe. Vielen Dank für das Teilen.
Danyim

1
großartige Lösung; einfach.
Bob.mazzo

2
Ich habe nur eine kleine Ergänzung gemacht : > NUL. Als ich das gerade versuchte, wurde es von der Konsole gedrosselt und es würde 15 Minuten oder länger dauern. Mit der Umleitung endete es in ungefähr 2
Mike Caron

Es ist lustig, dass Sie zum Löschen einiger JS-Dateien noch eine weitere JS-Bibliothek benötigen.
Linuxunil

30

Sie können Git Bash verwenden, um den Ordner zu entfernen:

Beispiel: c: \ users \ olefrank \ projects \ mynodeproject

rm -rf / c / users / olefrank / projects / mynodeproject


9
Dies funktionierte nicht unter Windows 7. Verzeichnis nicht leer Fehler
Miguel Stevens

5
Sie müssen auch das Flag -d angeben, um auch Verzeichnisse zu löschen.
Stuart.Sklinar

oder -fR, um rekursiv nach oben zu klettern und den Ordner ebenfalls zu löschen
Dan Kanze

@Karthiga -rf sind Flags / Optionen / Parameter, die dem RM mitteilen, wie der Löschvorgang ausgeführt werden soll. rsagt, in Unterverzeichnisse zu rekursieren und fdas Löschen zu erzwingen (nicht auffordern). -rfist eine Unix-Konvention, um mehrere Flags / Optionen gleichzeitig anzugeben.
Tim Coker

19

Ich habe GitBash verwendet, um den Ordner zu entfernen!

rm -r node_modules

Es hat eine Weile gedauert, alles zu löschen, aber es hat bei mir funktioniert!


Das hat bei mir funktioniert. Ich habe früher Rimraf benutzt. Rimraf hat nicht funktioniert und ich habe es versucht.
Saiyaff Farouk

Dies sollte ein Top-Kommentar sein. Nicht, etwas installieren, nur um etwas zu entfernen. Alternativ einfach eingebenRD node_modules
David MacNeil

15

Löschen Sie Deep Netsted Folder wie node_modules in Windows

  1. Option 1

    Mit rimrafNPM-Paket löschen

    • Öffnen Sie die Eingabeaufforderung und ändern Sie Ihr Verzeichnis in den Ordner, in dem sich der node_modulesOrdner befindet.

    • Lauf

      rimraf node_modules

    • Fehlender Rimraf-FEHLER, dann installieren

      npm install rimraf -g

    • Führen Sie nach Abschluss der Installation aus

      rimraf node_modules

  2. Option 2 :

    Detele ohne etwas zu installieren

    • Erstellen Sie einen Ordner mit Namen testin einem beliebigen Laufwerk

      robocopy /MIR c:\test D:\UserData\FolderToDelete > NUL

    • Löschen Sie den Ordner testund FolderToDeleteda beide leer sind

Warum ist dies ein Problem in Windows?

Eine der tief verschachtelten Ordnerstrukturen ist node_modules. Windows kann den Ordner nicht löschen, da sein Name zu lang ist . Um diese einfache Lösung zu lösen, installieren Sie ein Knotenmodul RimRaf


Error: EPERM: operation not permitted
Travis Heeter

1
Behoben: Ich musste meinen Computer neu starten. Es wurde etwas verwendet node_modules, aber es gab mir einen Berechtigungsfehler.
Travis Heeter

8

Versuchen Sie es mit Visual Studio Code

Nachdem ich viele Lösungen ausprobiert habe, finde ich, dass diese ziemlich einfach ist. Öffnen Sie einfach das Projekt in Visual Code und löschen Sie es. Die Benutzeroberfläche kann einige Sekunden lang einfrieren, aber es wird definitiv funktionieren. Ich teste mit vielen großen node_modules-Ordnern

Geben Sie hier die Bildbeschreibung ein

Vielen Dank


Seltsamerweise funktioniert !! :) Ich habe versucht, es auch im abgesicherten Modus zu löschen, sogar verwendet, sudo suaber nichts hilft. Übrigens, ich laufe unter OSX, was mir bis zu meinem Upgrade auf Mojave nie passiert ist.
Forloop

6

Sie können Git Bash verwenden, um den Ordner zu entfernen:

Beispiel: c: \ users \ stu \ projects \ mynodeproject

rm / c / users / stu / projects / mynodeproject -rfd


5

Ich hatte ein ähnliches Problem und RD funktionierte aus einem unbekannten Grund nicht.

NPM kann jedoch sein eigenes Durcheinander npm uninstall [module-name]beseitigen. Wenn Sie dies also für jedes Verzeichnis in node_modules tun, werden Sie es los.

(Ich werde später nachschlagen, wie man eine Batch-Schleife für diejenigen erstellt, die viele Abhängigkeiten haben.)



4

Einfach nur für Windows ausführen Ich habe es nicht für andere Betriebssysteme getestet

rm -r node_modules

Tatsächlich können Sie damit jeden Ordner löschen.

wie rm -r AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete.

Öffnen Sie einfach die gitbash- Verschiebung zum Stammverzeichnis des Ordners und führen Sie diesen Befehl aus

Hoffe das wird helfen.

Danke, Ajay Kotnala


2

Unter Windows müssen Sie mit Total Commander nur den Ordner auswählen und auf shift+ klicken delete. Vergiss den shiftSchlüssel nicht.


Dies ist die beste Lösung! TC löscht den Ordner ohne Schluckauf und es ist wirklich schnell
Marina Dunst

2

Jeder Dateimanager ermöglicht es, solche Probleme zu vermeiden, z. B. Far Manager

Geben Sie hier die Bildbeschreibung ein


1
Ich hatte seit mehr als 10 Jahren niemanden mehr gesehen, der diese Art von Schnittstelle benutzte. J machte meinen Tag.
Rikki

2

Ich lösche einfach node_modules in meinem Projektordner in PowerShell. Sie werden gefragt, ob Sie ihn und seinen untergeordneten Ordner entfernen möchten. Drücken Sie einfach 'Y' und fertig


Einfache Sache. Vielen Dank
estin sonnig

... \ node_modules hat untergeordnete Elemente und der Parameter Recurse wurde nicht angegeben. Wenn Sie fortfahren, werden alle untergeordneten Elemente mit dem Element entfernt. Sind Sie sicher, dass Sie fortfahren möchten? [Y] Ja [A] Ja für alle [N] Nein [L] Nein für alle [S] Anhalten [?] Hilfe (Standard ist "Y"): Y rd: Verzeichnis C: \ ... \ node_modules \ ngx -color-picker \ dist kann nicht entfernt werden, da es nicht leer ist. rd node_modules -recurse
AUSTX_RJL

1
rd node_modules -recurse
AUSTX_RJL

@AUSTX_RJL rd funktioniert auch, aber ich hatte nie ein Problem mit del node_modules .. verdrahtet, aber tnx auf irgendeine Weise für eine andere Art des Löschens in PS
Roy.B

2

Versuchte alles, funktionierte aber nicht. Alle oben genannten Methoden haben nichts bewirkt. Endlich konnte ich über VSCode löschen.

  1. Öffnen Sie einfach Ihren Stammordner mit VSCode.
  2. Wählen node_modules Sie Ordner und löschen.
  3. Profitieren. (Das few millisecondsLöschen dauert.)

VSCode-delete.png


2

Ich habe ein Windows-Kontextelement erstellt, um node_modules oder andere Ordner schnell zu löschen. Ich benutze es, wenn Windows einen Ordner wegen ungültiger Zeichen im Verzeichnispfad nicht löscht.

WIE INSTALLIERT MAN?

  1. Installieren Sie rimraf =>npm install rimraf -g

  2. Erstellen Sie eine neue Datei mit dem Namen delete.bat, stellen Sie den Inhalt wie folgt ein und kopieren Sie ihn inc:\windows\system32\

    delete.bat:

 @ECHO OFF
 ECHO.
 ECHO %CD% 
 ECHO.
 ECHO Are you sure to delete the folder with Rimraf?
 PAUSE
 SET FOLDER=%CD%
 CD /

 rimraf "%FOLDER%"

 rem DEL /F/Q/S "%FOLDER%" > NUL
 rem RMDIR /Q/S "%FOLDER%"

 EXIT
  1. Führen Sie die Datei fast-delete.reg aus , um sie in die Registrierung zu importieren.

    Getan!

Endergebnis


1

Eine Lösung, die ich benutze:

(Ich würde es vorziehen, die Installation einer neuen Erweiterung (rimraf) zu vermeiden, wenn Sie mit CI-Umgebungen arbeiten.)

  1. A) Benennen Sie packages.json in etwas anderes um. B) Speziell auf CI - nach der Installation von npm entferne ich normalerweise die Datei, anstatt sie umzubenennen, aber wenn Sie sie benötigen, müssen Sie dies nicht tun. Das ist deine Entscheidung.
  2. Ausführen npm init- Dadurch wird eine leere packages.jsonDatei erstellt (keine Abhängigkeiten).
  3. run npm prune- dies gleicht node_modules mit dem Abhängigkeitsabschnitt von packages.json- ab, der jetzt als Ergebnis von Schritt 2 leer ist.
  4. Wenn Sie # 1.A gewählt haben. Schritt, löschen Sie das neu erstellte packages.jsonund benennen Sie das Original umpackages.json wieder in seinen ursprünglichen Namen um.

1

Es ist zu einfach.

Löschen Sie einfach alle Ordner in node_modules und dann den eigentlichen node_module-Ordner.

Das funktioniert bei mir. Bestes Glück....


Ehrlich gesagt ist dies der schnellere Weg, aber viel Geduld ist erforderlich. Noch besser, wenn Sie mehrere Ordner gleichzeitig löschen.
Santosh

1

Unter Windows verwendet meine Go-to-Lösung den folgenden rmdirBefehl :

rd /S .\node_modules\

Wenn es beim ersten Mal fehlschlägt, versuchen Sie es noch einmal. Überprüfen Sie auch, ob derzeit Skripte ausgeführt werden, die die Module ( npm run serveoder ähnliche) verwenden.


0

Nach dem Aussehen dieses MSDN-Artikels können Sie jetzt die MAX_PATH-Einschränkung in Windows 10 v1607 (AKA-Jubiläumsupdate) umgehen, indem Sie einen Wert in der Registrierung ändern - oder über Gruppenrichtlinien


0

Verwenden Sie einfach Powershell ..

Führen Sie Powershell und CD im übergeordneten Ordner aus und dann:

rm [yourfolder]

wie in:

rm node_modules

0

Ich bin unter Windows 10 und konnte keine Ordner mit der Meldung "Verzeichnis nicht leer" löschen. Weder rimraf noch rm -rf funktionierten.

Das Kopieren einer leeren Textdatei in jeden einzelnen Ordner hat den Trick getan - ich konnte den vollständigen Ordner node_modules löschen.


0

Selbst wenn Sie rimrafglobal installieren , kann es manchmal zu einer lokalen rimrafAbhängigkeit kommen (SASS hat diese normalerweise). In diesem Fall würde ich folgende Befehle ausführen:

Befolgen Sie die ersten beiden Schritte, wie von usagidon empfohlen, wenn Sie Probleme oder Fehler haben, versuchen Sie es

npm uninstall rimraf & rimraf node_modules

Dadurch wird lokal gelöscht rimrafund der globale verwendet


0

Nicht genau verwandt, aber da dies der erste Beitrag ist, den ich bei meiner Suche nach einer ähnlichen Lösung gefunden habe, denke ich, dass es sich lohnt, hier zu posten.

Unter Windows 10 traten Berechtigungsprobleme auf, als ich versuchte, meinen Ordner "node_modules" zu löschen, nachdem der Versuch, elektronenredux zu installieren, fehlgeschlagen war. Es scheint, dass Electron-Redux meinen node_modules @types hinzugefügt hat, für die falsche Berechtigungen eingerichtet wurden.

rimraf funktionierte nicht, da immer noch Berechtigungsprobleme auftraten.

Am Ende habe ich node_modules umbenannt, dann hat ein einfaches Löschen funktioniert.


0

Okay, mein Problem war, dass ich den Ordner .bin in node_modules hatte und das nicht löschen konnte. Ich habe alle oben genannten Lösungen für dasselbe ausprobiert, aber nichts hat funktioniert.

Der Fehler, der wiederholt wurde, war "Sie haben keine Berechtigung zum Löschen des Ordners oder er wurde von einem anderen Programm verwendet".

Lösung, die ich fand "Ich hatte Antivirus auf meinem PC installiert, der unwissentlich die Dateien aus dem Ordner node_modules verwendete".

Ich habe das Antivirenprogramm deinstalliert oder Sie können die Berechtigungseinstellung über die Antivireneinstellungsoption ändern (hängt davon ab, über welches Antivirenprogramm Sie verfügen). Jetzt kann ich den Ordner node_modules löschen.


0

Was für mich funktioniert hat war:

  1. schloss die Node Manager-Konsole
  2. hat die Atom-Entwicklungsumgebung (Visual Studio Code) geschlossen, in der Sie sich befinden.
  3. Löschen Sie dann die node_modules

    npm install rimraf -g 
    rimraf node_modules

0

Die PowerShell-Methode:

PS > rm -r -force node_modules

# The same, but without using aliases
PS > Remove-Item -Recurse -Force node_modules

Und wenn Sie alle node_modulesUnterverzeichnisse löschen möchten :

Hinweis Potenziell gefährlich, da es rekursiv gelöscht wird. Stellen Sie sicher, was Sie hier tun

PS > dir -Path . -Filter node_modules -recurse | foreach {echo $_.fullname; rm -r -Force $_.fullname}

0

Sie können speziell für diesen Zweck ein anderes npm-Paket verwenden. Durch die lokale Installation im Ordner mit

npm i rm-node-modules-recur

Wenn Sie möchten, können Sie es auch global mit dem Schalter -g installieren.

Bei lokaler Installation können Sie die Binärdatei aus dem aktuellen Verzeichnis node_modules.bin \ using aufrufen

 .\node_modules\.bin\rmnodes "<top level directory within quotes>"

Wenn Sie sich für eine globale Installation entschieden haben, verwenden Sie einfach

rmnodes "<top level directory within quotes>"

und das war's .. dieses Paket wird am Ende leicht rekursiv node_modules aus allen Unterverzeichnissen (in meinem Fall etwa 60 ungerade Ordner) löschen. Siehe beigefügten Schnappschuss. mit rm-node-modules-recur


-1

Vorwärts ein wenig schlagen für mehrere Ordner vorrücken ...

Wenn Sie einen Projektordner mit mehreren 'Builds' haben, der 'node_module' enthält. Mögen:

C:/Project/build-1/node_modules
C:/Project/build-2/node_modules
C:/Project/build-3/node_modules
C:/Project/build-4/node_modules

Sie möchten alle Ordner löschen, beginnt mit "Build"

! Installieren Sie zuerst nodejs und rimraf wie oben vorgeschlagen!

Gehen Sie dann mit dem Projekt zum Pfad und führen Sie den PowerShell-Befehl aus

cd  C:/Project/
Get-ChildItem build* | foreach {rimraf -Path $_.FullName}

Es wird eine Weile dauern


-1

Sie können einen einfachen Stapel basierend auf der Antwort von @ mike-caron erstellen , sodass Sie nicht jedes Mal den gesamten robocopyBefehl eingeben müssen, sondern nur den Pfad zum ausgewählten Ordner eingeben :

@echo off
ECHO What Directory would you like to empty?
ECHO Current path: %cd%
SET /p UserInputPath=Input relative path to directory:
ROBOCOPY /MIR empty_dir %cd%\%UserInputPath% > NUL
PAUSE

Hier verwenden Sie das leere Verzeichnis mit dem Namen empty_dir im robocopyBefehl, das sich im selben Verzeichnis wie die Batchdatei befinden muss, damit dies funktioniert. Nachdem die Batch-Datei ihren Job beendet hat, sind sowohl das ausgewählte Verzeichnis als auch das Verzeichnis empty_dir leer, sodass Sie sie entfernen können.

Ich habe eine einfache Batch-Datei erstellt, die einen leeren Ordner erstellt und nach robocopyAusführung des Befehls sowohl den leeren Ordner als auch den ausgewählten Ordner entfernt, sodass Sie nur den Pfad zum ausgewählten Ordner eingeben müssen, den Sie löschen möchten. Es ist schnell und praktisch, wenn Sie keine Dinge wie Rimraf installieren möchten . Sie können es hier herunterladen https://github.com/5imun/WinCleaner


Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - Aus der Rezension
SherylHohman
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.