So entfernst du alte node_modules-Ordner
Einen node_modules-Ordner kannst du aus package.json und dem Lockfile des Projekts neu installieren. Bei einem Projekt, an dem du gerade nicht arbeitest, ist das Löschen deshalb meist unproblematisch. Prüf vorher, ob das Lockfile vorhanden ist und das Projekt ohne gepatchte oder private Pakete auskommt. Geh dann ein Projekt nach dem anderen durch.
Das Wichtigste in Kürze
- Kurz gesagt. node_modules lässt sich aus package.json und dem Lockfile neu installieren. Bei einem Projekt, an dem du gerade nicht arbeitest, ist das Löschen deshalb meist unproblematisch.
- Vorher prüfen. Stell sicher, dass das Lockfile vorhanden ist und das Projekt ohne gepatchte oder private Pakete auskommt. Geh ein Projekt nach dem anderen durch.
- Mit Mint. Mint findet große node_modules-Ordner in den üblichen Code-Ordnern. Einer, den du in den letzten 7 Tagen benutzt hast, bleibt unter Keep, und ein ruhender Ordner mit Lockfile wartet unter Safe to clean, zusammen mit dem Befehl, der ihn wiederherstellt.
Die großen Ordner finden
Liste sie zuerst nur auf und lösch noch nichts. Im Terminal gibt find ~/Projects -type d -name node_modules -prune -exec du -sh {} + jeden node_modules-Ordner der obersten Ebene unter ~/Projects mit seiner Größe aus. Ersetz den Startordner durch den Ordner, in dem dein Code liegt.
Mach Suchen und Löschen zu zwei getrennten Schritten. Ein einzeiliger find-Befehl, der gleich auch rm -rf ausführt, löscht das Falsche, sobald der Pfad um einen Ordner danebenliegt.
Was du vor dem Löschen prüfen solltest
Öffne das Projekt und such nach package-lock.json, yarn.lock oder pnpm-lock.yaml. Ohne Lockfile kann eine frische Installation neuere Versionen holen als die, die du hattest, und das Projekt lässt sich dann womöglich nicht mehr genauso bauen wie vorher.
Achte außerdem auf gepatchte Pakete, lokal verlinkte Pakete und Abhängigkeiten aus einer privaten Registry, auf die du irgendwann vielleicht keinen Zugriff mehr hast. Ein Lockfile hilft nur, wenn sich jedes Paket darin noch herunterladen lässt. Wenn dir das Projekt wichtig ist, sorg dafür, dass der Quellcode committet oder gesichert ist.
Projekt für Projekt vorgehen
Hat ein Projekt diese Prüfungen bestanden, ist die eigentliche Bereinigung in einer Minute erledigt.
- Wähl ein Projekt, an dem du gerade nicht arbeitest, und vergewissere dich, dass es ein Lockfile hat.
- Leg den node_modules-Ordner dieses Projekts in den Papierkorb.
- Führ den Installationsbefehl des Projekts aus, etwa npm install, sobald du es das nächste Mal brauchst.
- Prüf, ob es sich bauen lässt und seine Tests erfolgreich durchlaufen, bevor du den Papierkorb leerst.
Was Mint beiträgt
Mint sucht in üblichen Code-Ordnern wie ~/github, ~/Projects und ~/Developer nach großen node_modules-Ordnern. Zuerst prüft es, ob das Projekt in Benutzung ist, ob also gerade ein Programm darin arbeitet oder dort in den letzten 7 Tagen etwas installiert, ausgeführt oder bearbeitet wurde. Ein Projekt in Benutzung landet unter Keep, und die Zeile nennt den Grund.
Ein ruhender Ordner mit Lockfile landet unter Safe to clean, bereits angehakt, und seine Zeile zeigt den Befehl, der ihn wiederherstellt, etwa npm install. Weil eine Neuinstallation ihn zurückbringt, löscht „Clean“ ihn direkt. Ohne Lockfile landet der Ordner unter Yours, mit dem Hinweis, dass er sich vielleicht nicht wiederherstellen lässt, und dort ist nichts für dich vorab angehakt.
Taucht ein node_modules-Ordner wieder auf, nachdem Mint ihn entfernt hat, listet Mint ihn weiter auf, hakt ihn aber nie an, und Auto Care lässt ihn in Ruhe. Wenn du klickst, prüft Mint noch einmal und löscht den Ordner nicht, falls sein Projekt in der Zwischenzeit benutzt wurde. In der App-Store-Edition kann Mint nur in Ordner hineinsehen, für die du ihm Zugriff gegeben hast.
Häufig gestellte Fragen
Kann ich jeden node_modules-Ordner löschen?
Nicht ohne Risiko. Projekte, an denen du arbeitest, brauchen sie, und ein altes Projekt hängt vielleicht von Paketen ab, die sich nicht mehr herunterladen lassen.
Lösche ich mit node_modules auch meinen Quellcode?
Nein, solange du nur den node_modules-Ordner selbst entfernst. Prüf den Pfad lieber zweimal, vor allem im Terminal, wo ein Tippfehler das ganze Projekt treffen kann.
Und wenn ein Projekt kein Lockfile hat?
Dann bekommst du bei einer Neuinstallation womöglich andere Paketversionen. Behalte den Ordner, wenn sich das Projekt genau so bauen lassen muss wie heute.
Finde die node_modules-Ordner, die du vergessen hast
Starte einen Scan in Mint und sieh nach, welche Projekte ein Lockfile haben, bevor du etwas entfernst.