Programmering

Hva er nytt i Angular 10.1

Angular 10.1.0, en oppfølgingspunktutgivelse til Angular 10, ble utgitt 2. september, og gir ytelsesforbedringer til kompilatoren og ruteren sammen med et nytt verktøy for utvinning av meldinger.

Angular 10 ble generelt tilgjengelig som en produksjonsutgivelse 24. juni. Den store oppgraderingen til det Google-utviklede TypeScript-baserte rammeverket la mer vekt på forbedringer av kvalitet, verktøy og økosystem enn nye funksjoner.

Angular 10 er mindre enn tidligere versjoner av Angular. Nye funksjoner inkluderer en ny datointervallvelger i Angular Material UI-komponentbiblioteket og advarsler for CommonJS-import. CommonJS-advarsler om import varsler utviklere når en avhengighet pakket med CommonJS kan resultere i større, langsommere applikasjoner, slik at utviklere kan erstatte en ECMAScript-modulpakke.

I tillegg tilbyr valgfrie strengere innstillinger et strengere prosjektoppsett når du oppretter et nytt arbeidsområde med ng nytt, via ng nytt - strengt. Aktivering av dette flagget initialiserer et nytt prosjekt med nye innstillinger for å forbedre vedlikehold, hjelpe med å fange feil og la CLI gjøre avanserte optimaliseringer på en app.

Hvor laster du ned Angular 10

Du finner den generelle utgivelsen av Angular 10 på GitHub. For å oppdatere din nåværende Angular-installasjon, kan du kjøre denne kommandoen:

ng oppdatering @ vinkel / cli @ vinkel / kjerne

Nye funksjoner i Angular 10.1.0

Angular 10.1.0-utgivelsen, tilgjengelig på GitHub, inkluderer følgende nye muligheter og forbedringer:

  • For å forbedre ytelsen i compiler-cli, har Angular 10.1 en løsning for ytelsesregresjoner som påvirker trinnvis gjenbruk av programmet.
  • For rutereytelse, prioritizedGuardValue operatøren blir brukt for å optimalisere CanLoad vakter.
  • ProgramBasedEntryPointFinder vil gjenbruke EntryPointManifest for å laste inngangspunktavhengigheter når det er mulig, noe som unngår å måtte analysere dem igjen ved hver påkalling av ngcc.
  • Et nytt verktøy for utvinning av meldinger støttes, som til slutt vil bli integrert i CLI.
  • For byggeverktøyet Bazel, LinkabablePackageInfo blir lagt til i ng-modul regel, slik at linkeren kan koble riktig ng_module mål i Node.js kjøretidshandlinger.
  • Mer innsikt legges til diagnosen produsert for statiske evalueringsfeil.
  • Et alternativ er lagt til for absolutt URL HTTP-støtte.
  • TypeScript 4.0-støtte er lagt til kompilatoren.
  • canparse () diagnostikk utsettes.
  • Ytelsesforbedringer har blitt gjort på ruteren, skjemaer, kompilatoren CLI og kompatibilitetsverktøyet ngcc.
  • Endring av livssykluskroker kan gjøres når som helst før bootstrap.
  • En rekke store rettelser tilbys for kjerne, router og andre deler av Angular.

Nye funksjoner i Angular 10

Nøkkelfunksjonene i Angular 10 inkluderer følgende:

  • TSlib, kjøretidsbiblioteket for TypeScript som inneholder hjelpefunksjoner, er oppdatert til TSlib 2.0. TSLint statisk analyseverktøy for TypeScript er oppdatert til TSLint 6.
  • Det er lagt til et kompilatorgrensesnitt som omslutter den faktiske ngtsc-kompilatoren. Den språktjenestespesifikke kompilatoren administrerer flere typecheck-filer ved hjelp av prosjektgrensesnittet, og skaper Scriptinfos etter behov.
  • Nettleserkonfigurasjonen for nye prosjekter er oppdatert for å ekskludere eldre, mindre brukte nettlesere. Støtte er avviklet for Internet Explorer 9, Internet Explorer 10 og Internet Explorer Mobile.
  • Angular Package Format inkluderer ikke lenger ESM5- eller FESM5-pakker, noe som sparer nedlasting og installasjonstid når du kjører garn eller npm installere for kantede pakker og biblioteker.
  • For kompilatoren er navnespenn lagt til for eiendomslesing og metodeanrop.
  • EntryPointFinder, en programbasert inngangspunktfinner, er lagt til som kan sås fra importen i et program spesifisert av en tsjconfig.json-fil. Dette forventes å være raskere enn DirectoryWalkerEntryPointFinder når det aktive programmet bare importerer en liten andel av de installerte inngangspunktene.
  • Autofullføring blir fjernet fra HTML-enheter, for eksempel & amp, på grunn av tvilsom verdi og et ytelsesproblem.
  • Eksplisitt kartlegging eksponeres fra lukking til devmode-filer. Denne funksjonen er rettet mot utviklingsverktøy som må oversette produksjonsbygging til sine devmode-ekvivalenter.
  • I en bruddendring er generisk gjort obligatorisk for ModuleWithProviders. En generisk type parameter har blitt krevd for ModuleWithProviders mønster for å jobbe med Ivy-kompilerings- og gjengivelsesrørledningen, men før denne forpliktelsen tillot View Engine at den generiske typen ble utelatt. Hvis en utvikler bruker ModuleWithProviders uten en generisk type, vil en versjon 10-migrering oppdatere koden. Men hvis en utvikler bruker View Engine, og avhengig av et bibliotek som utelater den generiske typen, vil en build-feil bli utstedt. I dette tilfellet hjelper ikke ngcc, og overføringen dekker bare applikasjonskode. Biblioteksforfatteren bør kontaktes for å fikse biblioteket. Som en løsning kan skipLibChecks settes til false i tsconfig eller oppdatering av en app for kun å bruke Ivy.
  • TypeScript 3.9 er nå omtalt, med støtte for TypeScript 3.8 som er fjernet. Dette er en bruddendring. TypeScript 3.6 og TypeScript 3.7 støttes heller ikke lenger.
  • Kompilator-cli har forbedret typekontroll av ytelsesforbedringer.
  • For å forbedre ytelsen, beregningen av basePaths har blitt lat, så arbeid utføres bare om nødvendig TargetedEntryPointFinder. Tidligere, basePaths ble beregnet hver gang søkeren ble instantiert, noe som var bortkastet innsats i tilfelle da det målrettede inngangspunktet allerede var behandlet.
  • Sammenslåing av flere oversettelsesfiler støttes. Tidligere var bare en oversettelsesfil per lokalitet tillatt. Nå kan brukere spesifisere flere filer per sted, og transaksjonene fra hver fil blir slått sammen med meldings-ID.
  • Tidsavbrudd for låsing av asynkronisering kan konfigureres. Dette legger til støtte for filen ngcc.config.js for innstilling av prøv på nytt og prøv på nyttForsink alternativer for AsyncLocker. En integrasjonstest legger til en ny sjekk for tidsavbrudd og bruker ngcc.config.js for å redusere tidsavbruddstiden for å forhindre at testen tar for lang tid.
  • I en bruddendring logges advarsler om ukjente elementer nå som feil. Selv om dette ikke vil ødelegge en app, kan det utløse verktøy som forventer at ingenting skal logges via console.error.
  • I en annen ødeleggende endring, enhver resolver som returnerer TØMME vil avbryte navigasjonen. For å la navigasjonen fortsette, må utviklere oppdatere resolverne for å oppdatere noen verdi, for eksempel standard! tom.
  • Tillegg av avhengighetsinformasjon og ng-innholdsvelgere til metadata. Denne foreslåtte kompilatorfunksjonen vil gi ekstra metadata som er nyttige for verktøy som Angular Language Service, og gir muligheten til å gi forslag til direktiver / komponenter definert i biblioteker.
  • Ytelsesforbedringer, oppnådd ved å redusere størrelsen på inngangspunktsmanifestet og en caching-teknikk i manifestet. I tillegg gjøres caching av avhengigheter i inngangspunktsmanifestet og leses derfra i stedet for å bli beregnet hver gang. Tidligere, selv om et inngangspunkt ikke trengte behandling, ville ngcc (Angular Ivy kompatibilitetskompilator) analysere filene til inngangspunktet for å beregne avhengigheter, noe som ville tatt mye tid for store_node-moduler.
  • For å forbedre ngcc-ytelsen er det nå tillatt å rapportere om en foreldet låsefil. I tillegg lagres en hurtigbufret kopi av en analysert tsconfig-fil som kan brukes på nytt hvis tsconfig-banen er den samme.
  • I en bruddendring er logikken oppdatert med formatering av dagperioder som går over midnatt. Når du formaterer en tid med b eller B formatkode, håndterte ikke den gjengitte strengen ordentlig dagperioder som strakte seg over dager. I stedet falt logikken tilbake til standardtilfellet for ER. Denne logikken er oppdatert slik at den samsvarer med tider i løpet av en dagsperiode som strekker seg over midnatt, så den vil nå gi riktig utdata, for eksempel om natten når det gjelder engelsk. Programmer som bruker begge formatDate () eller DatePipe eller b ogB formatkoder vil bli påvirket av denne endringen.
  • For ruteren, CanLoad vakt kan nå komme tilbake Urltree. EN CanLoad vakt tilbake Urltree avbryter nåværende navigering og viderekoblinger. Dette samsvarer med gjeldende atferd tilgjengelig for Kan aktivere vakter som også er lagt til. Dette påvirker ikke forhåndslastingen. EN CanLoad vakt blokkerer forbelastning; eventuelle ruter med en CanLoad vakt vil ikke bli forhåndslastet og vaktene vil ikke bli henrettet som en del av forhåndslading.
  • Formering av riktig verdiområde i et uttrykk Binding av et mikrosyntaksuttrykk til ParsedProperty, som igjen vil forplante spennet til mal-ASTene (både VE og Ivy). Dette forslaget er også for kompilatoren.
  • I en rettelse til kjernen, ville logikk bli lagt til udekorert klassemigrasjon for å dekorere avledede klasser av udekorerte klasser som bruker vinkelfunksjoner.
  • I en bruddendring vil Urlmatchers type gjenspeile at den alltid kan returnere null.
  • For servicearbeideren er det satt i en løsning for en situasjon der det var en sjanse for at servicearbeideren aldri vil registrere seg når det er en langvarig oppgave eller gjentatt tidsavbrudd.
  • Det er gjort en rekke feilrettinger, inkludert kompilatoren som unngår udefinerte uttrykk i en hullete matrise, og kjernen unngår en migreringsfeil når et ikke-eksisterende symbol importeres. Det er også en løsning i kjernen for Terser inlining bug. En annen feilretting identifiserer ordentlig moduler som er påvirket av overstyringer i TestBed.
  • Angular NPM inneholder ikke lenger visse jsdoc-kommentarer for å støtte Closure Compiler's avanserte optimaliseringer. Dette er en bruddendring. Støtte for Closure Compiler i pakker har vært eksperimentell og ødelagt i noen tid. Alle som bruker Closure Compiler, vil sannsynligvis bedre konsumere Angular-pakker bygget fra kilder direkte i stedet for å konsumere versjoner publisert på NPM. Som en midlertidig løsning kan brukere vurdere å bruke sin nåværende build-rørledning med Closure-flagg --compilation_level = ENKEL. Dette flagget vil sikre at bygningsrørledningen produserer byggbare, kjørbare gjenstander, til en pris av økt nyttelaststørrelse på grunn av at avanserte optimaliseringer er deaktivert.