Quando sviluppiamo applicazioni Angular di medie dimensioni, la compilazione occupa buona parte dei tempi di sviluppo. Nel tempo, il team di Angular ha ridotto i tempi di compilazione introducendo bazel, introducendo Ivy e altro ancora. Tuttavia, anche dal lato TypeScript possiamo ottimizzare ulteriormente i tempi di compilazione utilizzando il FLIC (Fast and Loose Incremental Checking) introdotto con Angular 3.8.
Supponiamo di avere il file File1.ts che referenzia File2.ts che a sua volta referenzia File3.ts. Se modifichiamo File3.ts, anche File2.ts deve essere ricompilato e di conseguenza anche File1.ts. Con TypeScript 3.8, nel file di configurazione del compilatore possiamo usare l'opzione assumeChangesOnlyAffectDirectDependencies per specificare che quando modifchiamo un file, solo le dipendenze dirette devono essere ricompilate.
Riprendendo il nostro esempio, questo significa che quando modifichiamo File3.ts, solo File2.ts verrà ricompilato mentre File1.ts verrà ignorato. Quando si hanno catene molto lunghe, il fatto di controllare solo le dipendenze dirette riduce drasticamente i tempi di compilazione. Il rovescio della medaglia consiste nel fatto che non controllando tutta la catena delle dipendenze, la modifica di un file può causare errori di compilazione in dipendenze indirette. Per questo motivo l'utilizzo di questa opzione è sempre da valutare attentamente.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare una libreria CSS universale: Immagini
Eliminare record doppi in Sql Server
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Utilizzare Intersect e Except per filtrare set di dati in TSql
Gestione dell'annidamento delle regole dei layer in CSS
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Testare il failover sulle region in Azure Storage
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Integrare un servizio esterno con .NET Aspire
Ordine e importanza per @layer in CSS
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Collegare applicazioni server e client con .NET Aspire
I più letti di oggi
- Microsoft Security Bulletin MS02-061
- Da non perdere! I corsi online di ASPItalia.com
- DevOps in a .NET world
- Costruire un client HTTP tipizzato con Refit e IHttpClientFactory in ASP.NET Core 2.1
- Scambiare dati tra due server con SOAP: il client
- Il global.asa questo sconosciuto
- Ordinare le directory con FSO e disconnected recordset di ADO
- Sfruttare un assembly da più applicazioni ASP.NET senza utilizzare la GAC
- Usare Smart Navigation con ASP.NET
- Creare documenti Word con salto di pagina e proprietà avanzate