Mise en cache des compilations et compilations limitées aux éléments modifiés
Gardez la CI d’un monorepo rapide à mesure qu’il grandit : utilisez des graphes de tâches, la mise en cache des calculs et la détection des projets affectés pour compiler et tester uniquement ce qui a changé.
Mise en cache des compilations et compilations limitées aux éléments modifiés est une leçon Git Advanced: Monorepo, Submodules & Workflows gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Git Advanced: Monorepo, Submodules & Workflows, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Git Advanced: Monorepo, Submodules & Workflows comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
The Scaling Wall
As a monorepo grows, rebuilding and retesting everything on every commit becomes painfully slow.
The fix is to only do work that the change actually requires, and to cache results that have not changed.
The Project Dependency Graph
Monorepo tools build a graph of how projects depend on each other. This graph tells the tool what is downstream of any change.
nx graphAffected Detection
By comparing your branch against a base commit, the tool computes the set of affected projects — those changed plus everything depending on them.
nx affected --target=test --base=mainWhy Only Affected
If you change a leaf library, only it and its consumers need rebuilding — unrelated apps are untouched. This can cut CI time from hours to minutes on large repos.
Computation Caching
Tools hash a task's inputs (source files, config, dependencies). If the hash matches a previous run, the cached output is replayed instead of recomputing.
What Goes Into the Hash
The cache key combines:
- Source file contents
- The exact command and its options
- Dependency versions
- Relevant environment variables
Any change to these invalidates the cache entry.
Local vs Remote Cache
A local cache speeds up your own repeated runs. A remote cache shares results across the whole team and CI, so work done once benefits everyone.
nx run-many --target=build --allCache Hits and Misses
A hit replays stored output instantly; a miss runs the task and stores the result. Tools report this so you can see the time saved.
Correctness of Caching
Caching is only safe if tasks are deterministic and inputs are declared accurately. Hidden inputs (timestamps, network calls) cause stale or wrong cache hits.
Wiring It into CI
In CI, run affected targets against the merge base and enable the remote cache. Each pipeline then does the minimum work and reuses shared results.
nx affected --target=build,test,lint --base=origin/mainTooling Landscape
Popular tools provide these features: Nx and Turborepo for JS/TS, Bazel for polyglot at scale, and Gradle/Pants for JVM. The concepts are the same across all.
Quick Check
Test your build-optimization knowledge.
Recap
You can now keep monorepo CI fast at scale:
- Use the project dependency graph to compute affected work
- Cache task results keyed on hashed inputs
- Share results via a remote cache across team and CI
- Keep tasks deterministic so caching stays correct
This extends your dependency management and CI/CD strategy lessons.
Questions Fréquemment Posées
La leçon « Mise en cache des compilations et compilations limitées aux éléments modifiés » est-elle gratuite ?
Oui — le texte complet de « Mise en cache des compilations et compilations limitées aux éléments modifiés » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Git Advanced: Monorepo, Submodules & Workflows, passe à CoddyKit PRO. Le cours Git Advanced: Monorepo, Submodules & Workflows comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Mise en cache des compilations et compilations limitées aux éléments modifiés » ?
Gardez la CI d’un monorepo rapide à mesure qu’il grandit : utilisez des graphes de tâches, la mise en cache des calculs et la détection des projets affectés pour compiler et tester uniquement ce qui… Tu pratiques Git Advanced: Monorepo, Submodules & Workflows avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Git Advanced: Monorepo, Submodules & Workflows ?
Aucune expérience préalable n'est requise. Git Advanced: Monorepo, Submodules & Workflows sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Mise en cache des compilations et compilations limitées aux éléments modifiés » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Git Advanced: Monorepo, Submodules & Workflows ?
Oui. Chaque leçon Git Advanced: Monorepo, Submodules & Workflows inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Gestion des dépendances dans les monorepos
- Commits atomiques et modifications interprojets
- Stratégies CI/CD pour monorepos
- Mise en cache des compilations et compilations limitées aux éléments modifiés