Guides Levo · Développeurs : tout le reste
Comment trouver et supprimer les dossiers node_modules sur tout votre Mac
Chaque dossier node_modules peut être supprimé. npm install, pnpm install ou yarn le reconstruit à partir du fichier de verrouillage. La seule question est de savoir lesquels méritent le temps de réinstallation, et la réponse est en général les projets que vous n’avez pas ouverts depuis un mois.

| Quoi | Où | Suppression sûre ? |
|---|---|---|
| Dépendances du projet | <project>/node_modules | Oui, install le reconstruit |
| Copies imbriquées | node_modules/*/node_modules | Laissez-les, elles partent avec le dossier parent |
| Paquets liés | Liens symboliques créés par npm link | Supprimez le lien, pas la source vers laquelle il pointe |
| Paquets globaux | /opt/homebrew/lib/node_modules ou le lib de votre version de Node | Non, ce sont des outils que vous avez installés exprès |
Pourquoi il y en a autant
Chaque projet JavaScript garde sa propre copie de chaque dépendance, et la plupart gardent aussi les dépendances de leurs dépendances. Une petite app React pèse facilement 300 Mo. Un monorepo peut dépasser 2 Go. Quelques années de projets perso, de tutoriels et de dépôts clonés représentent des dizaines de gigaoctets auxquels vous ne pensez jamais, car les dossiers se trouvent dans des projets que vous n’ouvrez que de temps en temps.
Comment le faire vous-même
Les trouver tous
Ouvrez le Terminal et listez chaque dossier node_modules de votre dossier personnel, le plus gros en dernier. Le -prune empêche find de descendre dans chacun, ce qui le garde rapide.
find ~ -name node_modules -type d -prune -not -path "*/Library/*" -exec du -sh {} + 2>/dev/null | sort -h | tail -30
La liste affiche la taille et le chemin. Tout ce qui se trouve sous ~/Library est ignoré exprès : des apps comme les éditeurs et les outils Electron y gardent leurs propres copies, et ce n’est pas à vous de les supprimer. Il en va de même pour les dossiers à l’intérieur d’un paquet d’app.
Supprimer le dossier d’un projet
cd ~/Developer/old-project
rm -rf node_modules
C’est définitif : rm n’utilise pas la corbeille. Vérifiez le chemin avant d’appuyer sur Entrée. Si vous préférez pouvoir annuler, glissez plutôt le dossier dans la corbeille depuis le Finder, même si le Finder peut mettre longtemps à déplacer un dossier de 50 000 petits fichiers.
En supprimer beaucoup d’un coup avec npkill
npkill analyse un dossier, liste chaque node_modules avec sa taille et sa date de dernière modification, et vous laisse supprimer avec les flèches et la barre d’espace. Vous n’avez pas besoin de l’installer.
cd ~/Developer
npx npkill
Triez par taille ou par dernière modification et parcourez la liste. La colonne de dernière modification est la plus utile : un dossier intact depuis un an est un bon candidat.
Quels projets laisser de côté
- Tout ce sur quoi vous travaillez cette semaine. Une réinstallation prend quelques minutes, mais elle demande aussi le réseau et peut récupérer des versions plus récentes si votre fichier de verrouillage est souple.
- Les projets sans fichier de verrouillage. Sans
package-lock.json,pnpm-lock.yamlouyarn.lock, une réinstallation ne vous redonnera pas forcément les mêmes versions. Vérifiez d’abord que le fichier de verrouillage est versionné. - Les projets avec des correctifs locaux. Si vous avez modifié à la main un fichier dans
node_modulessans jamais utiliserpatch-packageoupnpm patch, cette modification disparaît avec le dossier. - Les anciens projets qui dépendent d’un paquet retiré de npm depuis, ou d’un registre privé que vous ne pouvez plus joindre. Rare, mais c’est le seul cas où supprimer fait perdre quelque chose pour de bon.
- Tout ce dont vous avez besoin hors connexion. Si vous partez en voyage et voulez lancer le projet dans l’avion, n’y touchez pas.
Avec pnpm, node_modules est surtout fait de liens vers un store partagé : supprimer les dossiers de projets libère donc moins que ce que du laisse penser. Les fichiers ne sont libérés que lorsque plus rien n’y renvoie, et seulement après pnpm store prune. Consultez comment vider les caches de npm, pnpm, Yarn et Bun.
À regarder aussi
À côté de node_modules, les projets laissent des résultats de compilation : .next, .nuxt, dist, .turbo, .parcel-cache. La prochaine compilation les reconstruit, mais vérifiez que dist n’est pas versionné dans git avant de le supprimer, car certains projets le livrent exprès. Les projets Python laissent aussi leurs propres dossiers lourds, traités dans comment trouver et supprimer les anciens environnements virtuels Python.
Comment Levo s’y prend
Levo tient un index en direct de ce qui remplit votre disque : il sait donc déjà où se trouve chaque node_modules et sa taille. Ils apparaissent dans Ready to free sous les dépendances de projets, chacun avec une taille et une raison, à côté de vos caches de paquets.
Votre propre agent d’IA fait le jugement. Il lit chaque projet et décide s’il est inactif, et Levo ne coche un dossier que si rien n’y tourne : pas de serveur de développement, pas de fichier ouvert, pas de session d’agent de programmation. Un projet touché ce matin reste décoché. L’agent ne peut que lire. Levo supprime lui-même, et revérifie chaque dossier juste avant qu’il parte.
Vous choisissez un niveau de nettoyage, utilisez Select › Smartly, décochez tout ce que vous voulez garder et cliquez sur Clean up. Avec Move to Trash activé, vous pouvez remettre un dossier en place. La configuration est décrite dans Levo pour les développeurs web. La surveillance et les suggestions sont gratuites, tout comme deux nettoyages, puis il y a une licence à vie.
FAQ
Combien d’espace node_modules occupe-t-il ?
Cela dépend du projet. Une petite app pèse souvent de 200 à 400 Mo et un gros monorepo peut dépasser 2 Go. Sur quelques années de projets, la plupart des développeurs trouvent de 10 à 50 Go répartis sur des dizaines de dossiers.
Supprimer node_modules cassera-t-il mon projet ?
Non. Le dossier est reconstruit à partir de votre fichier de verrouillage la prochaine fois que vous lancez npm install, pnpm install ou yarn. Les fichiers source du projet ne sont pas touchés. Les exceptions sont les fichiers modifiés à la main dans le dossier et les paquets retirés de npm.
Peut-on supprimer node_modules pendant qu’un serveur de développement tourne ?
Évitez. Le serveur peut planter ou servir des pages cassées, et un observateur de fichiers peut échouer en pleine suppression. Arrêtez d’abord le serveur.
Pourquoi rm -rf node_modules est-il si lent ?
Un seul dossier peut contenir de 50 000 à 200 000 petits fichiers, et chacun doit être supprimé séparément. C’est plus lent sur un disque presque plein. Supprimer depuis le Terminal est bien plus rapide que de déplacer le dossier dans la corbeille depuis le Finder.
Dois-je aussi supprimer le fichier de verrouillage ?
Non. Gardez package-lock.json, pnpm-lock.yaml ou yarn.lock. C’est la trace qui permet à la réinstallation de vous redonner les mêmes versions.