Passer à la navigation principale

Comment vider le cache Yarn : Guide pour V1, Berry et CI/CD

Apprenez à vider le cache Yarn pour v1 et Berry (v2+). Réparez les builds brisés avec des commandes étape par étape, des meilleures pratiques CI/CD et des conseils de dépannage.

Martin Donadieu

Martin Donadieu

Spécialiste du contenu

Comment vider le cache Yarn : Guide pour V1, Berry et CI/CD

Vous exécutez yarn install, et la dépendance que vous venez de mettre à jour 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, même si vous êtes « en train d'utiliser la cache ».

Quand cela se produit, les gens cherchent souvent pour Yarn clear cache et collent la première commande qu'ils trouvent.

Parfois cela fonctionne. 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 context: Page/area: Site de marketing Capgo. Rôle: Étiquette de navigation ou élément UI court. Vu dans: page trust.astro. Message clé `and` (Et). Yarn Berry v2+

est suffisamment importante pour changer à la fois la bonne commande et la bonne stratégie de dépannage. yarn cache cleanLa plupart des guides s'arrêtent à

. C'est là que commence vraiment la partie. 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 pas même la cache.

Votre build est cassé et le cache Yarn pourrait en être la cause

Un modèle familier ressemble à ceci. Vous augmentez un package, vous récupérez des changements frais, et vous exécutez install à nouveau. La commande est terminée, mais l'application se comporte toujours comme si la dépendance ancienne était présente. Puis 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 également être une distraction.

Les problèmes de cache se manifestent généralement de quelques manières prévisibles. Un package local ne se met pas à jour. 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 poursuivez déjà des instabilités plus larges de pipeline, il est utile de combiner 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 compliquée est que Yarn a modifié 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 ?

Voilà pourquoi 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 a du sens lorsque vous avez un mode de panne spécifique en tête. 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 supprimer intentionnellement les packages stockés afin que Yarn les reconstitue à partir de zéro.

Un infographique intitulé Yarn Cache : Quand & Pourquoi Vider, décrivant trois raisons de vider et trois avantages.

Les symptômes qui indiquent des problèmes de cache

Certains cas sont des candidats de cache solides :

  • Une dépendance refuse de se mettre à jour : Vous avez changé 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 réexécuter la même commande reproduit toujours le même mauvais résultat.
  • Vous devez récupérer de l'espace disque local : Cela compte plus sur les machines de développement 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 setup de bureau est incohérent, ou si une construction Docker invalide la mauvaise couche, le nettoyage 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 Capacitor est utile de garder à portée de main. Si votre objectif est une nettoyage plus large de la machine plutôt que des problèmes de package, une guide système peut vous aider également.

Les développeurs Mac qui veulent nettoyer les caches d'applications pour les utilisateurs Mac découvrent souvent que les gestionnaires de packages ne constituent qu'une partie du tableau de stockage. Quand ne pas chercher à nettoyer le cache de Yarn Lorsque vous ne savez pas si vous devez nettoyer le cache de Yarn, vous pouvez vous demander si vous avez changé la version, ou reconstruit un package local, mais les installations tirent toujours un artefact plus ancien.

Lorsque vous ne savez pas si vous devez nettoyer le cache de Yarn, vous pouvez vous demander si les installations échouent de manière qui ressemble à un état :

Ne recourez pas à 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 Meilleure première démarche
Dérive du fichier de lock 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évisez l'ordre des couches et la persistance de la cache.
Mismatch CI Vérifiez lesquels des répertoires sont effectivement restaurés

Si l'installation est incorrecte en raison d'un environnement incorrect, la suppression du cache ne fait que rendre la prochaine installation incorrecte plus lente.

Cette distinction économise du temps. Une grande partie des débogages gaspillés proviennent du traitement du cache comme d'un bouton de réinitialisation magique.

Supprimer le 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 ce comportement, et note que le cache est repopulé à la prochaine yarn ou yarn install contexte : Fragment de texte HTML d'une chaîne de dialogue de Capgo plus longue (clé parente `alternatives_cta_questions`). Page/zone : Comparaison de alternatives de mise à jour en direct de Capacitor. Rôle : Paragraphe de marketing ou juridique long. Vu dans : page alternatives.astro. Conservez les termes de produit et de marque de Capgo ainsi que les termes de développeur exactement. Clé de message `alternatives_cta_questions` (Questions de CTA pour les alternatives). | Fragment de texte HTML d'une chaîne de dialogue de Capgo plus longue (clé parente `appflow_cta_questions`). Page/zone : Comparaison / migration de marketing de Appflow. Rôle : Paragraphe de marketing ou juridique long. Vu dans : page ionic-appflow.astro. Conservez les termes de produit et de marque de Capgo ainsi que les termes de développeur exactement. Clé de message `appflow_cta_questions` (Questions de CTA pour Appflow). | Fragment de texte HTML d'une chaîne de dialogue de Capgo plus longue (clé parente `capwesome_cta_questions`). Page/zone : Page de comparaison de Capawesome. Rôle : Paragraphe de marketing ou juridique long. Vu dans : page capwesome.astro. Conservez les termes de produit et de marque de Capgo ainsi que les termes de développeur exactement. Clé de message `capwesome_cta_questions` (Questions de CTA pour Capwesome). | Page/zone : Page de services de consulting. Rôle : Sujet de sous-titre ou de tagline. Vu dans : page consulting.astro. Conservez les termes de produit et de marque de Capgo ainsi que les termes de développeur exactement. Clé de message `consulting_faq_subtitle` (Sous-titre de la FAQ de consulting). | Page/zone : Comparaison / migration de marketing de Appflow. Rôle : Étiquette de navigation ou élément de navigation court. Vu dans : page ionic-appflow.astro, page ionic-enterprise-plugins.astro, page solutions/ionic-enterprise-plugins.astro. Clé de message `appflow_plugins_or` (Appflow Plugins Ou). the Yarn Classic cache CLI docs.

les documents de cache de Yarn Classic __CAPGO_KEEP_0__

Quelle commande supprime réellement

Pour Yarn v1, la commande de nettoyage par défaut est claire :

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 :

  1. Exécutez la commande de nettoyage en premier : yarn cache clean
  2. Supprimez les artefacts d'installation locale si nécessaire : node_modules is souvent le prochain candidat lorsque l'état semble toujours incohérent.
  3. 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 votre configuration locale prévisible, ce guide étape par étape sur l’installation de __CAPGO_KEEP_0__ et __CAPGO_KEEP_1__ s’associe bien à une réinitialisation des dépendances propre. installing Capacitor CLI step by step 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 « effacer la zone de stockage globale et essayer à nouveau ». Berry offre 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.

Berry a changé le modèle de cache

Dans Yarn moderne, le comportement de cache est lié beaucoup plus étroitement au projet lui-même. Cela correspond à l’approche plus large de Berry autour du contrôl’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-à-machines.

Une comparaison chart montrant les différences clés entre les systèmes de gestion de dépendances Yarn Classic et Yarn Berry.

Berry a changé le modèle de cache.

Pourquoi l'ancienne conseil peut vous tromper. Un collègue qui a appris Yarn sur v1 peut s'attendre à une commande pour purger tout globalement. Dans Berry, vous devez penser en termes de scope.

Si vous vous occupez de différents sorties de build sur les pipelines mobile et web, le même esprit de scope s'applique également en dehors de la gestion de package. Cette comparaison des types de builds est un utile rappel que les hypothèses d'environnement tendent à se déverser dans la débogage.

Voici une rapide explication visuelle avant les détails de la commande :

Les commandes qui comptent dans Berry

Les documents modernes de Yarn yarn cache clean comme enlevant les fichiers de cache partagéset ce expose deux importantes options dans la référence actuelle de la commande de nettoyage du cache Yarn:

  • yarn cache clean supprime les fichiers de cache partagés de Yarn.
  • yarn cache clean --mirror efface le cache global au lieu du cache local du projet.
  • yarn cache clean --all supprime à la fois les fichiers de cache global et les fichiers de cache local du projet en cours.

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
Effectuez un réglage complet 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 scope 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, vider le cache Yarn sans réfléchir est généralement une erreur. Cela ressemble à une bonne idée car elle supprime l'état, mais elle supprime souvent l'état même dont votre pipeline a besoin pour la vitesse et la répétabilité.

La question plus utile est : Qu'est-ce que vous cachez exactement, et qu'est-ce que vous restaurez exactement ?

Un diagramme à quatre étapes illustrant le flux de cache Yarn pour les processus de construction Docker et CI/CD.

Pourquoi vider le cache dans les pipelines est souvent une mauvaise décision

Un discussion de CircleCI a capturé un schéma de défaillance 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 discussion sur le cache Yarn de CircleCI Decision point :.

Cela compte car les systèmes CI cachent souvent la cause sous-jacente derrière un symptôme vague : « l'installation est lente » ou « l'étape de dépendance est floue. » Les développeurs clonent ensuite le cache, relancent et n'obtiennent pas d'amélioration significative.

Les erreurs courantes des pipelines incluent :

  • Cacher le mauvais répertoire : L'étape de restauration est terminée, mais Yarn ne utilise pas la localisation restaurée.
  • Ignorer les chemins de travail : Les dépendances de base peuvent se restaurer tandis que l'installation de travail doit encore être reliaisonnée.
  • Construire les couches Docker dans le mauvais ordre : A source code copy invalidates the dependency layer, so package installation reruns every time.

Dans CI, une erreur de cache causée 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 scène. 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 Capacitorcôté votre stratégie de package-manager et de cache de build.

A une meilleure approche CI et Docker

Utilisez l'invalidation de cache avec intention, pas avec émotion.

Pour la CI, un modèle fiable ressemble à ceci :

  1. Cachez en fonction de l'état des dépendances : Associez les clés de cache à yarn.lock et les fichiers de configuration Yarn pertinents.
  2. Restaurez avant l'installation : Assurez-vous que les chemins restaurés correspondent aux chemins que Yarn utilisera dans cet environnement.
  3. Installez de manière cohérente : Dans les configurations immuables, utilisez le mode d'installation qui impose la correction du fichier de verrouillage.
  4. Annulez sur des changements réels : Un changement de version de Yarn, une mise à jour du fichier de verrouillage ou un changement de chemin de cache est un bon motif pour reconstruire le cache.

Pour Docker, les principes sont similaires :

  • Copiez d'abord les manifestes de dépendances : Conservez la couche d'installation de dépendances séparée de la source d'application lorsque cela est possible.
  • Évitez les nettoyages inutiles lors de la construction de l'image : Supprimer le cache à l'intérieur de la même construction d'image supprime souvent l'utilisation utile de la réutilisation de couches.
  • 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 Action meilleure 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 de l'espace se lient toujours fortement Cachez les artefacts d'installation pertinents du travail d'espace
Reconstruire Docker réexécute les installations Docker rebuild reruns installs
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 reconstruisez proprement

Utilisez Yarn clear cache en CI uniquement lorsque vous avez confirmé que le contenu de cache obsolète est le véritable problème. La plupart du temps, la solution est une meilleure conception de cache.

Résoudre les erreurs courantes de cache Yarn

Le bug de cache le plus frustrant est celui qui survit à une purge de cache. Vous exécutez une purge ciblée, réinstallez et Yarn tire toujours l'ancienne package. À ce stade, il est tentant de supposer que le registre est incorrect ou que le fichier de verrouillage est hanté. yarn cache clean <package-name> Un problème historique documenté dans Yarn montre pourquoi cela se produit. Les développeurs ont signalé que cache/.tmppourraient laisser une copie ancienne derrière dans : « __CAPGO_KEEP_0__ » , ce qui signifie que les installations continuaient à utiliser la version obsolète jusqu'à ce que le répertoire temporaire soit supprimé ou qu'une purge complète soit effectuée, comme discuté dans le problème Yarn concernant les artefacts de cache périmés dans .tmp.

Lorsqu'une purge ciblée laisse encore des packages périmés 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 : Confirmez que vous déboguez la version de package attendue et la source.
  • Ne faites pas confiance à une purge de package spécifique trop beaucoup : Une purge ciblée peut laisser des artefacts temporaires derrière elle.
  • Échappez à une purge de cache complète : Si la version périmée persiste, nettoyez l'étendue de cache plus large.
  • Inspectez les chemins de cache temporaire manuellement : In les anciens réglages, cache/.tmp peut s'agir de la pièce manquante.

Lorsqu'un paquet se réfère toujours à une ancienne artefact, les fichiers de cache temporaires 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

Ne chaque erreur de cache n'est pas un problème de contenu de cache.

Dans Docker, les systèmes Linux multi-utilisateurs ou les exécutants CI, vous pouvez rencontrer des erreurs 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 avant de résoudre le problème d'appartenance. 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.

Ces types d'issues se présentent souvent comme un cache périmé 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équentes sur le nettoyage du cache Yarn

Est-il sûr de nettoyer le cache Yarn

Oui. Dans le développement normal, il s'agit d'une opération sûre car vous supprimez les 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 nettoyé signifie que la prochaine installation peut devoir télécharger ou reconstruire plus que d'habitude.

Combien souvent devriez-vous le faire

Seulement lorsque vous avez une raison.

Le nettoyage de la cache Yarn ne devrait pas être une maintenance de routine sur 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 affectera les builds de production

Non directement. Le nettoyage de votre cache local ou CI ne change pas l'application code que vous avez commit.

C'est l'environnement qui prépare la build qui change. Si votre pipeline de production dépend de l'artefact de mise en cache d'installation, le nettoyage de ceux-ci peut rendre les builds plus lentes 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 lancement sans raison.

Quelle est la règle la plus simple à suivre

Utilisez la plus petite mise à jour qui correspond au problème.

Pour la débogage local, commencez par l'étendue 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 mise à jour spécifique d'un package ne fonctionne pas, supposez des artefacts temporaires ou un désalignement de l'environnement avant d'assumer que Yarn est cassé.


Si votre équipe livre des applications Capacitor et a besoin d'un pipeline de lancement plus propre après des problèmes de dépendance ou de build Capgo est une option pour livrer les mises à jour de JavaScript et d'actifs sans attendre la revue du magasin, tout en maintenant votre processus de build et de lancement séparé de la mise à jour de la cache de package.

Les mises à jour en temps réel pour les applications Capacitor

Même si un bug de la couche web est actif, expédiez la correction par le biais de Capgo plutôt que d'attendre des jours pour l'approbation de la boutique d'applications. Les utilisateurs reçoivent la mise à jour en arrière-plan tandis que les modifications natives restent dans la voie de revue normale.

Un soutien humain de Martin

Démarrer maintenant

Dernières actualités de notre blog

Capgo vous donne les meilleures informations dont vous avez besoin pour créer une application mobile vraiment professionnelle.