Add configurable size limit for persistent build cache with LRU eviction

Aperta
#33,320 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

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

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.

Descrizione

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.
Lingua principale
TypeScript
Stelle
27k
Fork
11.8k
Merge medio
16h 21m
PR unite (30g)
170

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di angular/angular-cli

Tutte le issue di angular/angular-cli

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.