Novità di Angular 9.1.0

È arrivato Angular 9.1, con miglioramenti per prestazioni e concorrenza al compilatore di compatibilità ngcc. Anche la pipeline di compilazione e rendering di Ivy ha ricevuto attenzione, con prestazioni migliori.

Angular 9.1, pubblicato il 25 marzo, segue la versione Angular 9.0, che è diventata disponibile come versione di produzione il 6 febbraio 2020. L'aggiornamento della versione 9.0 al popolare framework basato su TypeScript passa le applicazioni al compilatore Ivy e al runtime per impostazione predefinita.

Ivy offre una compilazione AOT più veloce e dimensioni di bundle più piccole, test più veloci e un migliore debug. In Ivy sono presenti anche associazioni di classi e stili CSS migliorate, insieme a miglioramenti nel controllo del tipo, errori di compilazione e tempi di compilazione. Fa parte anche di Angular 9  ng update, che promette di essere uno strumento più affidabile e informativo per l'aggiornamento delle applicazioni e delle loro dipendenze. 

Angular fornisce l'inserimento delle dipendenze, particolarmente utile per l'assemblaggio di servizi dati per le applicazioni, insieme all'uso di un modello HTML per comporre componenti. In Angular, gli sviluppatori compongono ancora componenti con un componente HTML che si collega al codice TypeScript per le parti imperative del programma.

Dove scaricare Angular 9.1 o versioni precedenti

Puoi scaricare la versione di produzione Angular da GitHub e le versioni beta. È stata pubblicata una guida all'aggiornamento di Angular, insieme a una guida per l'aggiornamento ad Angular 9.

Nuove funzionalità in Angular 9.1

  • Ottimizzazione delle prestazioni per ngcc, nonché miglioramenti della concorrenza e dell'affidabilità per i casi d'uso monorepo ngcc. Lo script di postinstallazione di NPM non è più consigliato. Con ngcc, l'elaborazione asincrona viene sospesa se un altro processo ha il file di blocco. Inoltre con ngcc, una capacità di appiattimento della mappa sorgente è in grado di caricare un albero di file sorgente collegati da mappe sorgente e appiattirli in una singola mappa sorgente. Questa mappa di origine esegue la mappatura direttamente dal file generato finale alle fonti originali a cui fanno riferimento le mappe di origine intermedie.
  • TypeScript 3.8 è supportato.
  • L'internazionalizzazione, tramite i18n, ora supporta le informazioni locali RTL.
  • Le prestazioni di Ivy sono state migliorate rimuovendo l'argomento dell'evento inutilizzato nelle istruzioni del listener. In precedenza, Ivy generava un $eventargomento, anche se non era utilizzato dalle espressioni dell'ascoltatore. Ciò potrebbe portare a una generazione di byte non necessaria. Inoltre, è stata inclusa una correzione rapida per la compatibilità per il controllo dei modelli Ivy.

Nuove funzionalità in Angular 9.0

Oltre a rendere Ivy il predefinito, Angular 9.0 include le seguenti nuove funzionalità e miglioramenti:

  • Nuove opzioni per providedIn, per la creazione di un @Injectableservizio, include platform, che rende un servizio disponibile in uno speciale iniettore di piattaforma singleton condiviso da tutte le applicazioni su una pagina e any, che fornisce un'istanza univoca in ogni modulo che inietta il token.
  • Cablaggi dei componenti, per garantire che gli unit test siano correttamente definiti e meno fragili. I dettagli di implementazione vengono astratti.
  • Nuovi componenti che consentono l'inclusione delle funzionalità di YouTube e Google Maps nelle applicazioni.
  • TypeScript 3.7 e TypeScript 3.6 sono supportati.
  • Le prestazioni sono state migliorate per eventListeners.
  • Il codice valuta predefinito in CurrencyPipeè ora configurabile.
  • Per migliorare le prestazioni del renderer Ivy, gli accessi ripetuti allo stato globale vengono rimossi dalle istruzioni i18n quando le informazioni sono già disponibili. Ivy ottiene anche un aumento delle prestazioni dalla rimozione di SafeDetectioncodice extra . E il pacchetto @ angular / localize può essere aggiunto a un progetto CLI Angular tramite ng add.
  • Anche per il renderer Ivy, vengono offerti messaggi di errore migliori per i componenti sconosciuti. Inoltre, è stato aggiunto un nuovo flag localize-translateche consente di specificare la locale di origine.
  • Per migliorare le prestazioni del core, la sanificazione diventa scuotibile dagli alberi nel renderer Ivy. 
  • Anche in Ivy, il controllo del tipo di modello è stato modificato per produrre ts.Diagnostics. Ciò risolve un problema di progettazione in cui il compilatore Angular ha prodotto sia la diagnostica TypeScript nativa che il proprio formato di diagnostica interna, che non è stato ottimale.
  • Anche per il core, Angular aggiunge un nuovo schema di migrazione, come da piano di migrazione fornito.
  • Il NgFormSelectorWarningselettore è stato rimosso.
  • Per ngcc (compilatore di compatibilità angolare), è stata aggiunta una migrazione per le classi figlie non decorate.
  • Sono state fatte numerose correzioni di bug per Ivy, il compilatore, core, language-service, ngcc e Bazel.

Nuove funzionalità in Angular 8.2

Rilasciata nell'agosto 2019, la versione angolare 8.2 include:

  • Per migliorare le prestazioni del compilatore, si evita la copia dal prototipo durante la clonazione di un oggetto. Questo aggiorna la funzione clone della classe ApplySourceSpanTransformer, in cui è stato utilizzato il ciclo for-in, che ha comportato la copia dal prototipo alle proprietà proprie, consumando più memoria.
  • Supporto TypeScript 3.5.
  • Compilazione di target utilizzati dagli strumenti Kythe con il renderer Ivy. Ciò elimina i problemi con i riferimenti incrociati a dipendenze transitive che non vengono generati, a causa del modo in cui tali dipendenze vengono caricate dal compilatore legacy.
  • Supporto per $elementcomponenti templatee templateURLfunzioni aggiornati .
  • Per Bazel, gli utenti ora possono passare un Bazel CompilerHost personalizzato per una compilazione angolare, supportando l'override dell'host del compilatore TypeScript.
  • Numerose correzioni di bug, incluso l'aumento del limite di memoria ngcinferiore a Bazel da 2 GB a 4 GB.

Nuove funzionalità in Angular 8.1

  • Vengono forniti helper di test per l'aggiornamento / libreria statica che collega gli iniettori Angular e AngularJS senza la necessità di un bootstrap completo di un'app ibrida.
  • Deprecazione dell'integrazione con il Web Tracing Framework, che Angular aveva precedentemente supportato per i test delle prestazioni. Il team di sviluppo di Angular ha notato che l'integrazione non è stata mantenuta e probabilmente non funziona per la maggior parte delle applicazioni Angular oggi. 
  • Implementazione di definitionAndBoundSpan, che ora è preferibile definition. L'implementazione di definitionè stata riformattata e semplificata.
  • Ritiro delle API della piattaforma webworker. L'inclusione di questo supporto era stata sperimentale, per provare a eseguire un'intera applicazione in un Web Worker, per il contenuto Web per eseguire script in background. I sostenitori di Angular non cercano più di farlo.

Angular 8.1 offre anche correzioni di bug per lo strumento di build Bazel, nonché per il core e il router Angular.

Nuove funzionalità in Angular 8.0

I miglioramenti in Angular 8, rilasciati a maggio 2019, includono quanto segue: