angular / angular/angular-cli

Add configurable size limit for persistent build cache with LRU eviction

Aperta
#33,320 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub
area: @angular/cli gemini-triaged needs: more info
Lingua principale
TypeScript
Stelle
27k
Fork
11.8k
Merge medio
14h 23m
PR unite (30g)
162

Descrizione

### 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:
```json
"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.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia con la cache persistente utilizzata dai comandi `build` e `serve` e confrontala con l’entry point esistente `ng cache clean` per `.angular/cache`. Definisci come viene configurato e misurato `cli.cache.maxSize`, quindi verifica che le voci usate meno di recente vengano rimosse una volta superato il limite configurato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
angular, typescript
Ambito
build-system, cli
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Attiva
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.