Add configurable size limit for persistent build cache with LRU eviction

Ouverte
#33,320 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
45/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
Active
Stack technique
angular, typescript
Domaine
build-system, cli

Piste de recherche

Commencez par le cache persistant utilisé par les commandes build et serve, puis comparez-le au point d’entrée existant ng cache clean pour .angular/cache. Définissez comment cli.cache.maxSize est configuré et mesuré, puis vérifiez que les entrées les moins récemment utilisées sont supprimées une fois la limite configurée dépassée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

area: @angular/cli gemini-triaged needs: more info
Command

build, serve

Description

The Angular CLI persistent disk cache (.angular/cache) grows without bounds. On large projects, a single checkout accumulates tens of gigabytes of cached build artifacts. In our case, a single checkout reached 29 GB.

This was previously raised in #25116 and closed as not feasible with Webpack. Since Angular 17+, the build system uses esbuild, so the original constraint no longer applies.

Describe the solution you'd like

Add a configurable size cap (e.g., cli.cache.maxSize) with LRU eviction when the limit is reached. This is a common pattern in build tooling — Turborepo, Gradle, and most browsers' HTTP caches all implement bounded persistent caches.

Example configuration:

"cli": {
  "cache": {
    "enabled": true,
    "maxSize": "2GB"
  }
}

When the cache exceeds maxSize, the oldest/least-recently-used entries are evicted.

Describe alternatives you've considered
  • Periodically running ng cache clean or manually deleting .angular/cache — works but is a manual maintenance burden, especially for developers unaware the cache is growing.
Langage dominant
TypeScript
Étoiles
27k
Forks
11.8k
Merge moyen
16 h 21 min
PR mergées (30 j)
170

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de angular/angular-cli

Toutes les issues de angular/angular-cli

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.