Ich habe mehrere npm-Projekte in einem lokalen Verzeichnis gespeichert. Jetzt möchte ich eine Sicherungskopie meiner Projekte ohne den node_modules
Ordner erstellen, da dieser viel Speicherplatz beansprucht und auch jederzeit mit abgerufen werden kann npm install
.
Daher benötige ich eine Lösung, um alle Ordner node_modules über die Befehlszeilenschnittstelle rekursiv aus einem angegebenen Pfad zu löschen. Anregungen / Hilfe ist sehr dankbar.
-prune
ist eine wichtige Optimierung. Es wird Fall finden, nicht innode_module
Verzeichnisse zu rekursieren (um nach verschachtelten node_modules zu suchen)/node_modules/gulp-server-livereload/node_modules: Directory not empty
viele "innere" node_modules-Ordner. Wie kann man das umgehen?'{}' +
?{}
ist ein Platzhalter, derfind
durch den gefundenen Dateipfad ersetzt wird.+
weistfind
an, alle Dateipfade an einen einzelnen Befehl anzuhängen, anstattrm
für jeden ausgeführt zu werden.Verbesserung der akzeptierten Antwort,
find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +
Ich stellte fest, dass der Befehl sehr lange ausgeführt werden würde, um alle Ordner abzurufen und dann einen Löschbefehl auszuführen. Um den Befehl wieder aufzunehmen, würde ich vorschlagen, den zu löschenden Verzeichnis zu verwenden
\;
und den Fortschritt des ausgeführten Befehls anzuzeigen-print
.Hinweis: Sie müssen zuerst
cd
in das Stammverzeichnis wechseln und dann den Befehl ausführen oder ihn nichtfind .
verwendenfind {project_directory}
Ordner nacheinander löschen
find . -name 'node_modules' -type d -prune -exec rm -rf '{}' \;
Ordner einzeln löschen und den zu löschenden Ordner drucken
find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;
Bearbeiten:
Für die Personen, die eine interaktive Methode mögen, lesen Sie die Antwort unter @jeckep. Führen Sie diese in dem Verzeichnis aus, das Sie beschneiden möchten.
quelle
Versuchen Sie es mit https://github.com/voidcosmos/npkill
Es werden alle node_modules gefunden und Sie können sie entfernen.
quelle
Ich bin auf diese Lösung gestoßen,
find
und geben Sie den Namen des Ordners an.-exec rm -rf '{}' +
Führen Sie den folgenden Befehl aus, um Ordner rekursiv zu löschen
find /path -type d -name "node_modules" -exec rm -rf '{}' +
quelle
bash
Funktion zu entfernennode_modules
. Allenode_modules
Verzeichnisse werden rekursiv aus dem aktuellen Arbeitsverzeichnis entfernt, während gefundene Pfade gedruckt werden.Sie müssen nur irgendwo in Ihre setzen
$PATH
rmnodemodules(){ find . -name 'node_modules' -type d -prune -exec echo '{}' \; -exec rm -rf {} \; }
quelle
Das funktioniert wirklich gut
find . -name "node_modules" -exec rm -rf '{}' +
quelle