Add configurable size limit for persistent build cache with LRU eviction
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
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 cleanor 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
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di angular/angular-cli
-
area: @angular/build gemini-triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
angular/angular-cli#34129 ·
-
area: @angular/cli gemini-triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
angular/angular-cli#34057 ·
-
area: @angular/build gemini-triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
angular/angular-cli#33955 ·
-
area: @angular/cli gemini-triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
angular/angular-cli#33055 · 1 commento · 3 reazioni ·
-
angular/build:library area: @angular/build gemini-triaged
angular/angular-cli#34131 · 1 assegnatario ·