Comment supprimer node_modules sur Mac sans perdre votre projet
Équipe AskClean · Mis à jour 2026-08-05
Vous pouvez supprimer le dossier node_modules d’un projet si package.json, le bon lockfile et toutes les dépendances requises restent disponibles. Mesurez d’abord le projet, arrêtez les processus actifs et ne placez que le dossier vérifié dans la Corbeille. Réinstallez ensuite avec le même gestionnaire de paquets, puis validez build, tests et démarrage avant de vider la Corbeille.

Distinguer node_modules du projet et du cache npm
node_modules est l’arbre de dépendances installé dans un projet : il peut être reconstruit dans de bonnes conditions, mais le projet ne s’exécute ni ne se compile tant que la réinstallation n’est pas terminée. package.json, fichiers de verrouillage (lockfiles), code source, configuration, correctifs, fichiers de workspace et historique Git sont nécessaires à cette reconstruction et ne doivent jamais être supprimés. Le cache de téléchargement partagé de npm, généralement sous ~/.npm, appartient encore à une autre catégorie.
Vérifier que les dépendances peuvent réellement être réinstallées
Un lockfile rend la résolution prévisible, mais ne sauvegarde pas les paquets. Confirmez le gestionnaire et sa version, les accès aux registres privés, au VPN, aux dépendances Git et file:, aux workspaces locaux, aux téléchargements externes et aux outils nécessaires à la compilation des modules natifs. npm v12 ne lit plus npm-shrinkwrap.json : si un ancien projet ne contient que ce fichier de même format, renommez-le en package-lock.json avant d’utiliser npm v12. N’écrasez jamais un package-lock.json existant ; comparez et réconciliez les deux fichiers séparément. Toute modification présente uniquement dans node_modules disparaîtra.
- À la racine du projet, exécutez pwd et du -sh ./node_modules, puis notez aussi l’espace libre de macOS.
- Vérifiez package.json, le bon lockfile, la configuration du workspace et les changements locaux ; avec npm v12, renommez npm-shrinkwrap.json en package-lock.json seulement si ce dernier n’existe pas déjà.
- Confirmez l’accès aux registres privés, dépendances Git et file:, paquets locaux, téléchargements externes et outils de build, puis arrêtez les processus utilisant node_modules.
- Placez uniquement le dossier node_modules vérifié dans la Corbeille et réinstallez depuis la racine appropriée avec le gestionnaire et le lockfile prévus par le dépôt.
- Exécutez build, tests, lint et démarrage, mesurez à nouveau l’espace, puis videz la Corbeille seulement après validation.
N’utilisez jamais node_modules comme unique copie d’un paquet ou d’une correction manuelle. Si une dépendance exacte n’est plus accessible et n’a été archivée nulle part, sa suppression peut rendre un ancien projet inutilisable.
Retirer un seul dossier de dépendances vérifié
Depuis la racine du dépôt, après l’avoir vérifiée, placez uniquement node_modules dans la Corbeille du Finder, jamais le dépôt parent. rm -rf ./node_modules contourne la Corbeille et reste irréversible : vérifiez d’abord la racine avec pwd. Utilisez ensuite npm ci si package-lock.json fait autorité, ou l’option qui interdit de modifier le lockfile prévue par le dépôt pour pnpm, Yarn ou Bun. Dans un monorepo, partez du lockfile racine et traitez les workspaces comme un seul système de dépendances.
Réinstaller puis valider tout le projet
Une installation réussie ne prouve pas encore que le projet est restauré. Exécutez les builds, tests, contrôles lint et commandes de démarrage documentés ; les modules natifs et scripts de cycle de vie peuvent encore échouer après un changement d’outils. La restauration nécessite des téléchargements, de la décompression, la recréation de liens et parfois une compilation. En cas d’échec, restaurez le dossier depuis la Corbeille et diagnostiquez les accès, le réseau, les versions et le lockfile avant de nettoyer un autre projet.
Limites de suppression et coût de récupération
Repérez les gros dossiers node_modules, protégez le code source et le lockfile, puis réinstallez les dépendances avec npm, pnpm, Yarn ou Bun.
| Élément ou action | À inspecter avec ou dans | Conséquence |
|---|---|---|
| Distinguer node_modules du projet et du cache npm | projet/node_modules | node_modules est l’arbre de dépendances installé dans un projet : il peut être reconstruit dans de bonnes conditions, mais le projet ne s’exécute ni ne se compile tant que la réinstallation n’est pas terminée. package.json, fichiers de verrouillage (lockfiles), code source, configuration, correctifs, fichiers de workspace et historique Git sont nécessaires à cette reconstruction et ne doivent jamais être supprimés. Le cache de téléchargement partagé de npm, généralement sous ~/.npm, appartient encore à une autre catégorie. |
| Vérifier que les dépendances peuvent réellement être réinstallées | package.json + lockfile + configuration du workspace | Un lockfile rend la résolution prévisible, mais ne sauvegarde pas les paquets. Confirmez le gestionnaire et sa version, les accès aux registres privés, au VPN, aux dépendances Git et file:, aux workspaces locaux, aux téléchargements externes et aux outils nécessaires à la compilation des modules natifs. npm v12 ne lit plus npm-shrinkwrap.json : si un ancien projet ne contient que ce fichier de même format, renommez-le en package-lock.json avant d’utiliser npm v12. N’écrasez jamais un package-lock.json existant ; comparez et réconciliez les deux fichiers séparément. Toute modification présente uniquement dans node_modules disparaîtra. |
| Retirer un seul dossier de dépendances vérifié | Corbeille / réinstallation avec le gestionnaire de paquets | Depuis la racine du dépôt, après l’avoir vérifiée, placez uniquement node_modules dans la Corbeille du Finder, jamais le dépôt parent. rm -rf ./node_modules contourne la Corbeille et reste irréversible : vérifiez d’abord la racine avec pwd. Utilisez ensuite npm ci si package-lock.json fait autorité, ou l’option qui interdit de modifier le lockfile prévue par le dépôt pour pnpm, Yarn ou Bun. Dans un monorepo, partez du lockfile racine et traitez les workspaces comme un seul système de dépendances. |
| Réinstaller puis valider tout le projet | build + tests + démarrage de l’application | Une installation réussie ne prouve pas encore que le projet est restauré. Exécutez les builds, tests, contrôles lint et commandes de démarrage documentés ; les modules natifs et scripts de cycle de vie peuvent encore échouer après un changement d’outils. La restauration nécessite des téléchargements, de la décompression, la recréation de liens et parfois une compilation. En cas d’échec, restaurez le dossier depuis la Corbeille et diagnostiquez les accès, le réseau, les versions et le lockfile avant de nettoyer un autre projet. |
FAQ
Peut-on supprimer node_modules sans risque sur Mac ?
Généralement oui, si package.json, le bon lockfile, les fichiers de workspace, le code source et toutes les sources de dépendances sont intacts. Le projet reste toutefois inutilisable jusqu’à la fin de la réinstallation et des vérifications.
Faut-il supprimer package-lock.json avec node_modules ?
Non. package-lock.json permet à npm de reproduire la résolution. npm v12 ne lit plus npm-shrinkwrap.json : si c’est le seul lockfile d’un ancien projet, renommez-le en package-lock.json au lieu de le supprimer, sans jamais écraser un package-lock.json existant.
node_modules et le cache npm sont-ils identiques ?
Non. node_modules contient les dépendances installées d’un projet ; le cache npm partagé se trouve généralement sous ~/.npm. Supprimer l’un ne supprime pas l’autre et leurs coûts de récupération ne concernent pas la même portée.
Sources