Levo-Anleitungen · Entwickler: alles andere
node_modules-Ordner auf dem ganzen Mac finden und löschen
Jeden node_modules-Ordner kannst du löschen. npm install, pnpm install oder yarn baut ihn aus dem Lockfile neu auf. Die einzige Frage ist, bei welchen sich die Zeit für die Neuinstallation lohnt, und meist sind das die Projekte, die du seit einem Monat nicht geöffnet hast.

| Was | Wo | Sicher zu löschen? |
|---|---|---|
| Projektabhängigkeiten | <project>/node_modules | Ja, install baut ihn neu auf |
| Verschachtelte Kopien | node_modules/*/node_modules | Lass sie, sie gehen mit dem übergeordneten Ordner |
| Verlinkte Pakete | Symlinks von npm link | Lösch den Link, nicht die Quelle, auf die er zeigt |
| Globale Pakete | /opt/homebrew/lib/node_modules oder das lib deiner Node-Version | Nein, das sind Tools, die du absichtlich installiert hast |
Warum es so viele gibt
Jedes JavaScript-Projekt hat seine eigene Kopie jeder Abhängigkeit, und die meisten halten auch die Abhängigkeiten ihrer Abhängigkeiten vor. Eine kleine React-App hat leicht 300 MB. Ein Monorepo kann 2 GB überschreiten. Ein paar Jahre Nebenprojekte, Tutorials und geklonte Repos summieren sich zu zig Gigabyte, an die du nie denkst, weil die Ordner in Projekten liegen, die du nur hin und wieder öffnest.
So machst du es selbst
Alle finden
Öffne das Terminal und lass dir jeden node_modules-Ordner in deinem Benutzerordner auflisten, den größten zuletzt. Das -prune hält find davon ab, in jeden hineinzugehen, und das macht es schnell.
find ~ -name node_modules -type d -prune -not -path "*/Library/*" -exec du -sh {} + 2>/dev/null | sort -h | tail -30
Die Liste zeigt Größe und Pfad. Alles unter ~/Library wird absichtlich übersprungen: Apps wie Editoren und Electron-Tools halten dort ihre eigenen Kopien, und die sind nicht deine zum Entfernen. Dasselbe gilt für Ordner in einem App-Paket.
Den Ordner eines Projekts löschen
cd ~/Developer/old-project
rm -rf node_modules
Das ist endgültig: rm nutzt den Papierkorb nicht. Prüf den Pfad, bevor du die Eingabetaste drückst. Willst du es rückgängig machen können, zieh den Ordner stattdessen im Finder in den Papierkorb, auch wenn der Finder lange brauchen kann, um einen Ordner mit 50.000 kleinen Dateien zu verschieben.
Viele auf einmal mit npkill löschen
npkill durchsucht einen Ordner, listet jeden node_modules mit Größe und Datum der letzten Änderung auf und lässt dich mit den Pfeiltasten und der Leertaste löschen. Du musst es nicht installieren.
cd ~/Developer
npx npkill
Sortier nach Größe oder nach letzter Änderung und arbeite die Liste ab. Die Spalte mit der letzten Änderung ist die nützliche: Ein Ordner, der ein Jahr unberührt ist, ist eine sichere Wahl.
Welche Projekte du auslässt
- Alles, woran du diese Woche arbeitest. Eine Neuinstallation dauert ein paar Minuten, braucht aber auch das Netzwerk und kann neuere Versionen holen, wenn dein Lockfile locker ist.
- Projekte ohne Lockfile. Ohne
package-lock.json,pnpm-lock.yamloderyarn.lockliefert eine Neuinstallation womöglich nicht dieselben Versionen wie vorher. Prüf zuerst, dass das Lockfile eingecheckt ist. - Projekte mit lokalen Patches. Hast du eine Datei in
node_modulesvon Hand bearbeitet und niepatch-packageoderpnpm patchgenutzt, ist diese Änderung mit dem Ordner weg. - Alte Projekte, die von einem Paket abhängen, das inzwischen von npm entfernt wurde, oder von einer privaten Registry, die du nicht mehr erreichst. Selten, aber es ist der eine Fall, in dem Löschen etwas für immer verliert.
- Alles, was du offline brauchst. Wenn du gleich verreist und das Projekt im Flugzeug ausführen willst, lass es in Ruhe.
Bei pnpm besteht node_modules größtenteils aus Links in einen gemeinsamen Store, das Löschen von Projektordnern gibt also weniger frei, als du vermuten lässt. Die Dateien werden erst freigegeben, wenn nichts mehr auf sie verweist, und dann nur nach pnpm store prune. Siehe npm-, pnpm-, Yarn- und Bun-Caches leeren.
Auch einen Blick wert
Neben node_modules hinterlassen Projekte Build-Ausgaben: .next, .nuxt, dist, .turbo, .parcel-cache. Der nächste Build erzeugt sie neu, aber prüf, dass dist nicht in Git eingecheckt ist, bevor du es entfernst, denn manche Projekte liefern es absichtlich mit. Auch Python-Projekte hinterlassen eigene schwere Ordner, behandelt unter alte virtuelle Python-Umgebungen finden und löschen.
So macht es Levo
Levo führt einen Live-Index dessen, was deine Festplatte füllt, und weiß daher schon, wo jeder node_modules liegt und wie groß er ist. Sie erscheinen in Ready to free unter Projektabhängigkeiten, jeweils mit Größe und Begründung, neben deinen Paket-Caches.
Dein eigener KI-Agent urteilt. Er liest jedes Projekt und entscheidet, ob es ruht, und Levo hakt einen Ordner nur an, wenn darin nichts läuft: kein Dev-Server, keine offene Datei, keine Sitzung eines Coding-Agenten. Ein Projekt, das du heute Morgen angefasst hast, bleibt ohne Haken. Der Agent kann nur lesen. Levo löscht selbst und prüft jeden Ordner noch einmal, kurz bevor er verschwindet.
Du wählst eine Bereinigungsstufe, nutzt Select › Smartly, entfernst den Haken bei allem, was du behalten willst, und klickst auf Clean up. Ist Move to Trash eingeschaltet, kannst du einen Ordner zurücklegen. Die Einrichtung steht unter Levo für Webentwickler. Beobachten und Vorschläge sind kostenlos, ebenso zwei Bereinigungen, danach gibt es eine Lizenz für die gesamte Lebensdauer.
FAQ
Wie viel Platz belegt node_modules?
Das hängt vom Projekt ab. Eine kleine App hat oft 200 bis 400 MB, und ein großes Monorepo kann 2 GB überschreiten. Über ein paar Jahre Projekte finden die meisten Entwickler 10 bis 50 GB, verteilt auf Dutzende Ordner.
Macht das Löschen von node_modules mein Projekt kaputt?
Nein. Der Ordner wird beim nächsten npm install, pnpm install oder yarn aus deinem Lockfile neu aufgebaut. Die Quelldateien des Projekts bleiben unberührt. Ausnahmen sind von Hand bearbeitete Dateien im Ordner und Pakete, die von npm entfernt wurden.
Ist es sicher, node_modules zu löschen, während ein Dev-Server läuft?
Lass es. Der Server kann abstürzen oder kaputte Seiten ausliefern, und ein Datei-Watcher kann mitten im Löschen scheitern. Stopp zuerst den Server.
Warum ist rm -rf node_modules so langsam?
Ein einzelner Ordner kann 50.000 bis 200.000 kleine Dateien enthalten, und jede muss einzeln entfernt werden. Auf einer fast vollen Festplatte ist es langsamer. Das Löschen im Terminal ist viel schneller, als den Ordner im Finder in den Papierkorb zu verschieben.
Muss ich auch das Lockfile löschen?
Nein. Behalte package-lock.json, pnpm-lock.yaml oder yarn.lock. Es ist die Aufzeichnung, mit der die Neuinstallation dieselben Versionen liefert.