Comment vider le cache npm sur Mac sans risque
Équipe AskClean · Mis à jour 2026-08-05
Repérez le cache actif avec npm config get cache, mesurez ce chemin avec du, puis exécutez npm cache verify avant toute suppression. N’utilisez npm cache clean --force que si vous avez réellement besoin d’espace et acceptez les prochains téléchargements. Cette opération ne supprime ni node_modules, ni package.json, ni votre lockfile.

Séparer le cache npm des dépendances et fichiers du projet
Le cache npm conserve des téléchargements réutilisables entre plusieurs projets. Son emplacement macOS par défaut est ~/.npm, mais la configuration peut le déplacer. node_modules est l’arbre de dépendances installé dans un projet ; package.json et package-lock.json décrivent son état et ne sont pas du cache. npm-shrinkwrap.json n’est pas du cache non plus, mais npm v12 ne le lit plus : s’il s’agit du seul lockfile d’un ancien projet, renommez ce fichier de même format en package-lock.json avant une réinstallation avec npm v12. N’écrasez jamais un package-lock.json existant.
Mesurer le cache actif et commencer par le vérifier
Ne supposez pas qu’un dossier ~/.npm existant est le cache actif. npm config get cache donne le chemin utilisé par cette configuration : mesurez exactement celui-ci et relevez l’espace libre. npm cache verify contrôle l’index et l’intégrité, puis élimine les données devenues inutiles sans jeter tous les téléchargements valides. Cela suffit souvent à l’entretien courant ; les erreurs ERESOLVE, d’authentification, 404, de proxy, de version de Node.js, de compilation native ou de script postinstall demandent un autre diagnostic.
- Exécutez npm --version et npm config get cache, puis confirmez que le chemin affiché désigne un cache et non un projet.
- Mesurez ce chemin exact avec du -sh et notez l’espace libre de macOS sans modifier package.json ni le lockfile.
- Arrêtez npm install, npm ci, npm exec et toute publication en cours, puis exécutez npm cache verify et conservez son résumé ainsi que ses erreurs.
- Exécutez npm cache clean --force uniquement si verify ne suffit pas, si le gain est pertinent et si les artefacts nécessaires restent accessibles.
- Relancez npm cache verify, remesurez le même chemin et validez un projet représentatif avec son lockfile inchangé, son build et ses tests.
Ne transmettez jamais un chemin non vérifié à rm -rf. Ne combinez pas non plus le nettoyage du cache avec la suppression ou la régénération du lockfile : vous changeriez deux causes à la fois et perdriez toute base de comparaison.
Réserver npm cache clean --force aux besoins justifiés
Exécutez npm cache clean --force seulement si le cache mesuré est assez gros pour compter, si l’espace est nécessaire maintenant et si les artefacts pourront être récupérés. La prochaine installation, notamment avec npm ci, peut être plus lente, voire échouer hors ligne ou si un registre privé, un hôte Git, un proxy ou un paquet retiré n’est plus accessible. Limitez --force à cette commande et ne l’enregistrez pas comme réglage npm permanent.
Valider sans modifier le graphe de dépendances
Après le nettoyage, vérifiez à nouveau le chemin avec npm config get cache, remesurez-le et comparez l’espace libre réel de macOS. Testez un projet représentatif en conservant package.json et le lockfile inchangés, puis exécutez son build et ses tests. Si l’erreur initiale revient, ne répétez pas le nettoyage : examinez le message conservé, les versions npm et Node.js, les identifiants et la configuration réseau. AskClean reconnaît ~/.npm par défaut ; un cache personnalisé reste à vérifier avec npm.
Limites de suppression et coût de récupération
Trouvez et mesurez le cache de téléchargement réellement utilisé par npm, vérifiez-le d’abord et ne le videz que si le gain justifie les futurs téléchargements.
| Élément ou action | À inspecter avec ou dans | Conséquence |
|---|---|---|
| Séparer le cache npm des dépendances et fichiers du projet | npm config get cache | Le cache npm conserve des téléchargements réutilisables entre plusieurs projets. Son emplacement macOS par défaut est ~/.npm, mais la configuration peut le déplacer. node_modules est l’arbre de dépendances installé dans un projet ; package.json et package-lock.json décrivent son état et ne sont pas du cache. npm-shrinkwrap.json n’est pas du cache non plus, mais npm v12 ne le lit plus : s’il s’agit du seul lockfile d’un ancien projet, renommez ce fichier de même format en package-lock.json avant une réinstallation avec npm v12. N’écrasez jamais un package-lock.json existant. |
| Mesurer le cache actif et commencer par le vérifier | npm cache verify | Ne supposez pas qu’un dossier ~/.npm existant est le cache actif. npm config get cache donne le chemin utilisé par cette configuration : mesurez exactement celui-ci et relevez l’espace libre. npm cache verify contrôle l’index et l’intégrité, puis élimine les données devenues inutiles sans jeter tous les téléchargements valides. Cela suffit souvent à l’entretien courant ; les erreurs ERESOLVE, d’authentification, 404, de proxy, de version de Node.js, de compilation native ou de script postinstall demandent un autre diagnostic. |
| Réserver npm cache clean --force aux besoins justifiés | npm cache clean --force | Exécutez npm cache clean --force seulement si le cache mesuré est assez gros pour compter, si l’espace est nécessaire maintenant et si les artefacts pourront être récupérés. La prochaine installation, notamment avec npm ci, peut être plus lente, voire échouer hors ligne ou si un registre privé, un hôte Git, un proxy ou un paquet retiré n’est plus accessible. Limitez --force à cette commande et ne l’enregistrez pas comme réglage npm permanent. |
| Valider sans modifier le graphe de dépendances | installation + vérification hors ligne/registre privé | Après le nettoyage, vérifiez à nouveau le chemin avec npm config get cache, remesurez-le et comparez l’espace libre réel de macOS. Testez un projet représentatif en conservant package.json et le lockfile inchangés, puis exécutez son build et ses tests. Si l’erreur initiale revient, ne répétez pas le nettoyage : examinez le message conservé, les versions npm et Node.js, les identifiants et la configuration réseau. AskClean reconnaît ~/.npm par défaut ; un cache personnalisé reste à vérifier avec npm. |
FAQ
npm cache clean --force est-il sans risque sur Mac ?
Il ne supprime pas le code source si npm cible son vrai cache, mais il élimine des téléchargements réutilisables. Mesurez et vérifiez d’abord, arrêtez les processus npm et prévoyez un accès réseau pour les installations suivantes.
Faut-il commencer par npm cache verify ou npm cache clean ?
Commencez toujours par npm cache verify. Il contrôle l’intégrité et élimine les données inutiles tout en conservant le contenu valide. Réservez clean --force à un besoin d’espace mesuré ou à un problème de cache confirmé.
Vider le cache npm supprime-t-il package-lock.json ?
Non. package.json et package-lock.json sont des fichiers de projet. npm v12 ignore npm-shrinkwrap.json ; s’il s’agit du seul lockfile d’un ancien projet, renommez-le en package-lock.json sans écraser de fichier existant ni changer la résolution pendant le nettoyage du cache.
Sources