Vous exécutez yarn install, et la dépendance que vous venez d'actualiser se résout toujours à la version de build ancienne. Ou votre ordinateur installe correctement tandis que CI échoue soudainement après une modification sans danger de fichier de verrouillage. Ou Docker rebuilds traînent en longueur, même si vous êtes « en train d'utiliser le cache ».
C'est généralement à ce moment-là que les gens cherchent à Yarn clear cache et collent la première commande qu'ils trouvent.
Parfois, cela marche. Parfois, cela ne résout rien. La raison est simple : le comportement de la cache de Yarn dépend fortement de la version de Yarn que vous utilisez, et la différence entre Yarn Classic v1 et Yarn Berry v2+ est suffisamment grande pour changer à la fois la bonne commande et la bonne stratégie de dépannage.
La plupart des guides s'arrêtent à yarn cache cleanC'est là que commence vraiment l'histoire. Ce qui compte, c'est la portée de la cache, si votre projet utilise une cache locale ou partagée, et si votre problème réel n'est même pas la cache.
Table des matières
- Votre build est cassé et Yarn Cache pourrait en être la cause
- When et Pourquoi Vider votre Cache Yarn
- Vider le Cache dans Yarn Classic v1
- Gestion du Cache Moderne dans Yarn Berry v2+
- Meilleures Pratiques de Cache Yarn pour CI/CD et Docker
- Résolution des erreurs courantes du cache Yarn
- Questions fréquentes sur la purge du cache Yarn
Votre build est cassé et le cache Yarn pourrait en être la cause
Un schéma familier ressemble à ceci. Vous augmentez une package, vous récupérez des changements frais, et vous exécutez install à nouveau. La commande est terminée, mais l'application se comporte comme si la dépendance ancienne était toujours présente. Ensuite, quelqu'un suggère de vider le cache, et maintenant vous vous demandez si c'est une vraie solution ou juste une superstition.
Cela peut être une vraie solution. Cela peut aussi être une distraction.
Les problèmes de cache se manifestent généralement de quelques façons prévisibles. Un package local ne se met pas à jour. Le CI récupère quelque chose inattendu. Une branche fraîche se comporte différemment de la branche principale même si le fichier de verrouillage dit que tout devrait correspondre. Si vous êtes déjà à la poursuite d'une instabilité plus large de la chaîne de pipeline, il est utile de pairer la débogage du cache avec une revue de build plus systématique, comme ce guide sur résoudre les problèmes de construction dans les pipelines CI/CD de Capacitor.
Règle pratique : Considérez Yarn clear cache comme un outil de diagnostic et non comme un rituel de maintenance.
La partie difficile est que Yarn a changé son modèle de cache au fil du temps. Dans les anciens projets, le cache est partagé globalement. Dans les projets plus récents, la suppression du cache peut être locale au projet, globale ou les deux, en fonction des drapeaux de commande. Par conséquent, lorsqu'un collègue dit « nettoyez simplement le cache Yarn », la première question devrait être : lequel Yarn ?
Par conséquent, une bonne solution de cache commence par le contexte. Ordinateur local ou exécuteur CI. Yarn v1 ou Berry. Cache partagé ou cache du projet. Une fois que vous savez cela, la commande devient précise au lieu d'être pleine d'espoir.
Quand et Pourquoi Vider le Cache de Yarn
Vider le cache de Yarn est pertinent lorsque vous avez un mode de panne spécifique à l'esprit. C'est le plus utile lorsque vous avez besoin de supprimer les artefacts de package obsolètes, de récupérer un état de téléchargement brisé ou de faire volontairement disparaître les packages stockés afin que Yarn les reconstitue à partir de zéro.

Les symptômes qui indiquent des problèmes de cache
Certaines affaires sont des candidats au cache de force :
- Une dépendance refuse de se mettre à jour : You avez modifié la version, ou reconstruit un package local, mais les installations tirent toujours un artefact plus ancien.
- Les installations échouent de manière qui ressemble à un état : Une machine fonctionne, une autre ne fonctionne pas, et la reprise du même commandement reproduit toujours le même résultat négatif.
- Vous devez récupérer de l'espace disque local : Cela compte plus sur les machines de développeurs que dans les environnements CI de courte durée.
D'autres situations ne ressemblent qu'à des problèmes de cache. Si votre fichier de verrouillage a changé inattendement, si un ensemble de configuration de bureau est incohérent, ou si une construction Docker invalide la mauvaise couche, la suppression du cache ne résoudra pas la cause racine. Les équipes travaillant sur des builds d'applications rencontrent souvent cela en jonglant avec des outils natifs, des dépendances JavaScript et des mises à jour de plugins. Dans ce contexte, cet aperçu pratique de la gestion des dépendances dans les projets __CAPGO_KEEP_0__ est utile de garder à portée de main. managing dependencies in Capacitor projects Ne pas utiliser Yarn clear cache lorsque...
Installs échouent de manière qui ressemble à un état : Une machine fonctionne, une autre ne fonctionne pas, et la reprise du même commandement reproduit toujours le même résultat négatif. Vous devez récupérer de l'espace disque local :
Cela compte plus sur les machines de développeurs que dans les environnements CI de courte durée.
Évitez d'utiliser la suppression de la cache Yarn comme première réponse à chaque problème d'installation.
Utilisez-le lorsque vous avez des preuves d'état de package périmé ou corrompu.
| Situation | Premier mouvement à privilégier |
|---|---|
| Dérive du fichier de contrôle des versions | Révision yarn.lock Examinez les modifications et réinstallez de manière cohérente |
| Problèmes de résolution de l'arborescence de travail | Vérifiez la configuration de l'arborescence de travail et le comportement d'installation |
| Ralentissement de la reconstruction de Docker | Révision de l'ordre des couches et de la persistance de la cache |
| Mauvaise correspondance CI | Vérifiez lesquels des répertoires sont effectivement restaurés |
Si l'installation est fausse en raison d'un environnement incorrect, la suppression du cache ne fait que rendre la prochaine installation fausse plus lente.
Cette distinction économise du temps. Une grande partie des débogages perdus proviennent du fait de traiter le cache comme une boîte à outils de réinitialisation magique.
Suppression du Cache dans Yarn Classic v1
Yarn Classic se comporte comme le font encore de nombreux développeurs qui supposent que toutes les versions de Yarn se comportent de la même manière. Il utilise un cache global dans le répertoire utilisateur, et yarn cache clean efface ce cache partagé. La documentation de Yarn Classic décrit elle-même ainsi son comportement, et note que le cache est repopulé lors de la prochaine yarn ou yarn install exécution dans le modèle de répertoire utilisateur documenté dans les docs du cache Yarn Classic CLI.

Ce que la commande supprime réellement
Pour Yarn v1, la commande de nettoyage par défaut est simple :
yarn cache clean
Cette commande efface la cache partagé, et non seulement le projet actuel. Si vous travaillez sur plusieurs dépôts sur la même machine, cela compte. La prochaine installation dans l'un d'eux peut devoir récupérer à nouveau les packages.
Cette conception de cache partagé est l'une des raisons pour lesquelles Yarn v1 peut produire un comportement transversal entre projets confus. Un artefact périmé dans le cache global peut survivre longtemps pour affecter différents dépôts, surtout lorsqu'il s'agit de développement de packages locaux.
Une séquence pratique pour Yarn Classic ressemble généralement à ceci :
- Exécutez la commande de nettoyage en premier :
yarn cache clean - Supprimez les artefacts d'installation locale si nécessaire :
node_modulesest souvent le prochain candidat lorsque l'état semble toujours incohérent. - Réinstallez à partir de zéro : Exécutez
yarn installà nouveau et confirmez que le graphe de dépendances se résout comme prévu.
Comment vérifier l'emplacement du cache
When vous souhaitez inspecter ou supprimer le répertoire de cache directement, Yarn Classic vous donne le chemin :
yarn cache dir
Cela est utile lorsque le commandement CLI ne semble pas résoudre le problème, ou lorsque vous avez besoin de confirmer quel compte utilisateur possède le répertoire de cache dans un environnement partagé ou conteneurisé.
Si vous travaillez dans un outilchain plus ancien et que vous essayez de garder la configuration locale prévisible, ce guide sur l’installation de __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ étape par étape installing Capacitor CLI step by step Une inspection de cache manuelle est souvent plus précieuse qu’un deuxième commandement de nettoyage aveugle.
Pour les projets v1, le modèle mental est simple. Un cache partagé unique, un commandement de nettoyage large, et la prochaine installation repopule ce que vous avez supprimé.
Gestion de Cache Moderne dans Yarn Berry v2+
Yarn Berry a changé la conversation. Si vous êtes habitué à Yarn v1, la plus grande adaptation est que la suppression du cache n’est plus juste « effacez la magasin global et essayez à nouveau ». Berry prend en charge un contrôle plus précis, qui est utile une fois que vous savez ce que vous ciblez.
Un tableau de comparaison montrant les différences clés entre les systèmes de gestion de dépendances Yarn Classic et Yarn Berry.

Dans Yarn moderne, le comportement du cache est lié beaucoup plus étroitement au projet lui-même. Cela correspond à l’approche plus large de Berry autour du contrôle au niveau du projet, Plug’n’Play, et des workflows où les dépendances peuvent vivre aux côtés du dépôt plutôt qu’en un seul modèle de cache machine-wide.
A comparison chart showing the key differences between Yarn Classic and Yarn Berry dependency management systems.
C'est pourquoi les conseils anciens peuvent vous tromper. Un collègue qui a appris Yarn sur v1 peut s'attendre à une seule commande pour purger tout globalement. Dans Berry, vous devez penser en termes de __CAPGO_KEEP_0__.
Si vous vous occupez de différents résultats de build sur les pipelines mobile et web, le même esprit de portée s'applique également en dehors de la gestion de packages. Cette comparaison des types de builds est un rappel utile que les hypothèses d'environnement tendent à se répandre dans la débogage.
Voici une explication visuelle rapide avant les détails des commandes :
Les commandes qui comptent dans Berry
Les documents modernes de Yarn yarn cache clean en supprimant les fichiers de cache partagés, et il expose deux switches importants dans la référence actuelle de la commande de nettoyage du cache Yarn:
yarn cache cleansupprime les fichiers de cache partagé de Yarn.yarn cache clean --mirrorefface le cache global au lieu du cache local du projet.yarn cache clean --allsupprime les fichiers de cache global et les fichiers de cache local du projet actuel.
Cela vous donne un flux de travail plus intentionnel que Yarn v1.
| Objectif | Commande |
|---|---|
| Nettoyez l'étendue de cache partagé par défaut | yarn cache clean |
| Ciblez le cache miroir global | yarn cache clean --mirror |
| Faites une réinitialisation complète sur les fichiers de cache local et global | yarn cache clean --all |
Utilisez --all lorsque vous voulez l'équivalent le plus proche de « commencer complètement à zéro ». Utilisez --mirror lorsque vous savez que le problème se situe dans la couche de cache global et que vous ne voulez pas effacer tout dans le projet.
Point de décision : En Berry, choisir le mauvais périmètre est l'une des principales raisons pour lesquelles une purge de cache semble « ne rien faire ».
C'est la différence pratique. Yarn Classic était large par défaut. Berry est explicite par conception.
Meilleures pratiques de cache Yarn pour CI/CD et Docker
En CI/CD, nettoyer aveuglément le cache Yarn est généralement une erreur. Cela ressemble à une sécurité car il supprime l'état, mais il supprime souvent l'état même sur lequel votre pipeline dépend pour la vitesse et la répétabilité.
La question plus utile est celle-ci : Qu'est-ce que vous cachez exactement, et qu'est-ce que vous restaurez exactement ?

Pourquoi la suppression de cache dans les pipelines est souvent une mauvaise décision
Un discussion de CircleCI a capturé un modèle de panne que de nombreux équipes rencontrent dans des projets réels. Les installations lentes n'étaient pas résolues par la purge de cache car le bouchon n'était pas les archives de packages obsolètes. C'était le comportement de récupération et de liaison, la désynchronisation du répertoire de cache, et les chemins manquants dans l'ensemble de cache, comme décrit dans ce node_modules thread de Yarn de CircleCI sur le cache __CAPGO_KEEP_0__.
That matters because CI systems often hide the underlying cause behind one vague symptom: “l'installation est lente” ou “l'étape de dépendance est instable.” Les développeurs réessayent ensuite, nettoient la cache, et n'obtiennent pas d'amélioration significative.
Les erreurs courantes des pipelines incluent :
- Cachez le mauvais répertoire : L'étape de restauration est terminée, mais Yarn ne utilise pas la localisation restaurée.
- Ignorez les chemins de travail : Les dépendances de base peuvent être restaurées tandis que l'installation de travail de l'espace de travail doit encore être relia.
- Construire les couches Docker dans le mauvais ordre : Une copie source code invalide la couche de dépendance, donc l'installation de package se réexécute chaque fois.
Dans CI, un manque de cache causé par une mauvaise configuration ressemble beaucoup à un cache corrompu.
Si vous construisez des applications mobiles dans des environnements automatisés, c'est également là où les outils de mise en production entrent en jeu. Les équipes combinent souvent des GitHub Actions ou CircleCI avec des systèmes de distribution et de mise à jour. Une option dans ce flux de travail plus large est Capgo’s CI/CD setup pour les applications Capacitorà côté de votre stratégie de package-manager et de cache de build.
Une approche CI et Docker meilleure
Utilisez l'invalidation de cache avec intention, pas avec émotion.
Pour le CI, un modèle fiable ressemble à ceci :
- Cachez en fonction de l'état de dépendance : Reliez les clés de cache à
yarn.locket les fichiers de configuration Yarn pertinents. - Restaurez avant d'installer : Assurez-vous que les chemins restaurés correspondent aux chemins que Yarn utilisera dans cet environnement.
- Installez de manière cohérente : Dans les configurations immuables, utilisez le mode d'installation qui impose la correction du fichier de verrouillage.
- Invalidez en cas de changements réels : Un changement de version de Yarn, une mise à jour du fichier de verrouillage ou un changement de chemin de cache est une bonne raison de reconstruire le cache.
Pour Docker, les principes sont similaires :
- Copiez d'abord les manifestes de dépendance : Conservez la couche d'installation de dépendance séparée de la source d'application lorsque possible.
- Évitez les nettoyages inutiles lors de la construction de l'image : La suppression du cache à l'intérieur de la même construction supprime souvent l'utilisation utile des couches de réutilisation.
- Soyez explicite sur la propriété de l'utilisateur : Les répertoires de cache créés par root peuvent créer des erreurs d'installation ultérieures pour un utilisateur runtime non-root.
Une petite table de décision aide :
| Scénario | Mieux vaut l'action que yarn cache clean |
|---|---|
| L'installation de CI est lente après restauration | Vérifiez l'ordre de restauration et le chemin de cache |
| Les travailleurs d'espace se reliaient encore lourdement | Cachez les artefacts d'installation pertinents du travail d'espace |
| Rebâtissez Docker pour exécuter à nouveau les installations | Réorganisez les couches autour des fichiers de dépendance |
| Une mauvaise construction après changement de dépendance | Annulez la clé de cache, puis rebâtissez proprement |
Utilisez Yarn clear cache en CI uniquement lorsque vous avez confirmé que le contenu de cache obsolète est le problème réel. La plupart du temps, la solution est une meilleure conception de cache.
Résolution des problèmes courants d'erreurs de cache Yarn
Le bug de cache le plus frustrant est celui qui survit à une nettoyage de cache. Vous exécutez une suppression ciblée, une réinstallation et Yarn tire toujours le paquet ancien. À ce stade, il est tentant de supposer que le registre est incorrect ou que le fichier de verrouillage est hanté.
Un problème historique documenté dans Yarn montre pourquoi cela se produit. Les développeurs ont signalé que yarn cache clean <package-name> pourraient laisser une copie ancienne derrière dans cache/.tmp, ce qui signifie que les installations continuaient à utiliser la version obsolète jusqu'à ce que le répertoire temporaire soit supprimé ou qu'une suppression complète soit effectuée, comme discuté dans le problème Yarn concernant les artefacts de cache obsolètes dans .tmp.
Lorsqu'une purge ciblée laisse encore des paquets obsolètes derrière elle
La leçon est simple. Une purge partielle n'est pas toujours suffisante.
Si vous suspectez une staleness de version plutôt qu'une corruption large, utilisez cet ordre :
- Commencez par la vérification évidente : Vérifiez que vous déboguez la version de package attendue et la source.
- N'ayez pas confiance dans une purge de package spécifique trop : La purge ciblée peut laisser des artefacts temporaires derrière elle.
- Passez à une purge de cache complète : Si la version obsolète persiste, nettoyez l'ensemble du champ de cache.
- Inspectez les chemins de cache temporaire manuellement : In les anciens ensembles de configuration,
cache/.tmppeut s'avérer être le morceau manquant.
Lorsqu'un paquet se poursuit à résoudre vers une ancienne artefact, les fichiers de cache temporaire sont souvent la première place où je vérifierais après une tentative de nettoyage ciblé échouée.
Les problèmes de droits et d'environnement qui ressemblent à des problèmes de cache
Ce n'est pas tous les problèmes de cache qui sont des problèmes de contenu de cache.
Dans Docker, les systèmes Linux multi-utilisateurs, ou les exécutants CI, vous pouvez rencontrer des échecs de droits car le répertoire de cache est défini par un utilisateur différent de celui qui exécute Yarn. Dans ce cas, le nettoyage du cache ne servira à rien tant que le problème d'appartenance n'est pas résolu. La solution pratique est de lancer Yarn sous l'utilisateur correct, ou de réparer la propriété du répertoire avant de réinstaller.
Ce type d'issue se présente souvent comme un cache obsolète car les installations échouent de manière incohérente dans différents environnements. La solution est opérationnelle, et non liée au paquet.
Questions fréquemment posées sur le nettoyage du cache Yarn
Est-ce que nettoyer le cache Yarn est sécuritaire
Oui. Dans le développement normal, c'est une opération sécuritaire car vous supprimez des artefacts de paquets stockés en cache, et non votre source d'application. Yarn peut récupérer ce dont il a besoin à nouveau lors de la prochaine installation.
Le compromis est le temps. Un cache propre signifie que la prochaine installation peut avoir besoin de télécharger ou de reconstruire plus que d'habitude.
Combien de fois devriez-vous le faire
Seulement lorsque vous avez une raison.
La suppression de la cache de Yarn ne devrait pas être une maintenance régulière d'un projet en bonne santé. Si vous l'intégrez dans chaque workflow par habitude, vous ralentirez les installations locales et affaiblirez la mise en cache CI. Utilisez-le lorsque les dépendances sont obsolètes, les installations semblent corrompues ou que vous avez besoin d'un réglage délibéré pendant la débogage.
Est-ce qu'il affecte les builds de production
Non directement. La suppression de votre cache local ou CI ne change pas l'application code que vous avez commit.
Ce qu'il change, c'est l'environnement qui prépare la build. Si votre pipeline de production dépend de l'artefact de mise en cache des installations, la suppression de ceux-ci peut rendre les builds plus lents ou exposer des problèmes de reproductibilité cachés. C'est utile pendant la dépannage, mais ce n'est pas quelque chose à ajouter dans les scripts de mise en production sans une raison.
Quelle est la règle la plus simple à suivre
Utilisez la plus petite suppression qui correspond au problème.
Pour le débogage local, commencez par le champ de cache que Yarn utilise dans ce projet. Pour CI et Docker, corrigez la conception de la mise en cache avant de commencer à effacer les caches. Et lorsque la suppression spécifique d'un package ne fonctionne pas, supposez des artefacts temporaires ou une incompatibilité d'environnement avant d'assumer que Yarn est cassé.
Si votre équipe livre des applications Capacitor et a besoin d'un pipeline de mise en production plus propre après des problèmes de dépendance ou de build, Capgo est une option pour livrer des mises à jour de JavaScript et d'actifs sans attendre la revue du magasin, tout en gardant votre processus de build et de déploiement séparé de la mise en cache de package.