Ohjelmointi

Mitä uutta Angular 10.1: ssä

Angular 10.1.0, Angular 10: n seurantapiste, julkaistiin 2. syyskuuta, mikä tuotti parannuksia kääntäjään ja reitittimeen sekä uuden viestin purkutyökalun.

Angular 10 tuli yleisesti saataville tuotantojulkaisuna 24. kesäkuuta. Googlen kehittämään TypeScript-pohjaiseen kehykseen tehdyssä merkittävässä päivityksessä korostettiin enemmän laatuun, työkaluihin ja ekosysteemien parannuksiin kuin uusiin ominaisuuksiin.

Angular 10 on pienempi kuin edelliset Angular-versiot. Uusiin ominaisuuksiin kuuluu uusi ajanjaksovalitsin Angular Material UI -komponenttikirjastossa ja varoitukset CommonJS-tuonnista. CommonJS-tuontivaroitukset varoittavat kehittäjiä, kun CommonJS: ään pakattu riippuvuus voi johtaa suurempiin, hitaampiin sovelluksiin, jolloin kehittäjät voivat korvata ECMAScript-moduulipaketin.

Lisäksi valinnaiset tiukemmat asetukset tarjoavat tiukemmat projektiasetukset, kun luot uuden työtilan uusi, kautta uusi - tiukka. Tämän lipun käyttöönotto alustaa uuden projektin uusilla asetuksilla parantamaan ylläpidettävyyttä, auttamaan vikojen havaitsemisessa ja antamaan CLI: lle mahdollisuuden tehdä edistyneitä optimointeja sovelluksessa.

Mistä ladata Angular 10

Löydät Angular 10: n yleisen julkaisun GitHubista. Voit päivittää nykyisen kulma-asennuksen suorittamalla tämän komennon:

päivitys @ kulma / cli @ kulma / ydin

Angular 10.1.0: n uudet ominaisuudet

GitHubissa saatavilla oleva Angular 10.1.0 -julkaisu sisältää seuraavat uudet ominaisuudet ja parannukset:

  • Kääntäjä-clin suorituskyvyn parantamiseksi Angular 10.1 sisältää korjauksen suorituskyvyn regressioihin, jotka vaikuttavat ohjelman kasvavaan uudelleenkäyttöön.
  • Reitittimen suorituskykyä varten priorisedGuardValue operaattoria käytetään optimointiin CanLoad vartijat.
  • ProgramBasedEntryPointFinder käytetään uudelleen EntryPointManifest ladata lähtökohdan riippuvuudet aina kun mahdollista, jolloin niitä ei tarvitse jäsentää uudelleen jokaisen ngcc-kutsun yhteydessä.
  • Tuetaan uutta viestin purkutyökalua, joka lopulta integroidaan CLI: hen.
  • Bazel-rakennustyökalua varten LinkabablePackageInfo lisätään ng-moduuli sääntö, jolloin linkkeri voi linkittää oikein ng_module kohteet Node.js: n ajonaikaisissa toiminnoissa.
  • Staattisen arvioinnin virheitä varten tuotettuun diagnostiikkaan lisätään enemmän oivalluksia.
  • Absoluuttisen URL-osoitteen HTTP-tueksi on lisätty vaihtoehto.
  • TypeScript 4.0 -tuki on lisätty kääntäjään.
  • kangas () diagnoosit ovat alttiina.
  • Suorituskykyparannuksia on tehty reitittimeen, lomakkeisiin, kääntäjän CLI: hen ja ngcc-kääntäjän yhteensopivuustyökaluun.
  • Elinkaarikoukkujen muokkaus voidaan tehdä milloin tahansa ennen käynnistyshihnaa.
  • Ytimelle, reitittimelle ja muille Angular-osille tarjotaan useita suuria korjauksia.

Angular 10: n uudet ominaisuudet

Angular 10: n tärkeimpiä ominaisuuksia ovat seuraavat:

  • TSlib, ajonaikainen kirjasto TypeScriptille, joka sisältää auttajatoimintoja, on päivitetty TSlib 2.0: ksi. TypeScriptin TSLint-staattisen analyysin työkalu on päivitetty TSLint 6: een.
  • Kääntäjärajapinta on lisätty, joka ympäröi todellisen ngtsc-kääntäjän. Kielipalvelukohtainen kääntäjä hallitsee useita kirjoitustarkistustiedostoja projektiliittymän avulla ja luo tarvittaessa Scriptinfoja.
  • Uusien projektien selainkokoonpano on päivitetty sulkemaan pois vanhemmat, vähemmän käytetyt selaimet. Internet Explorer 9: n, Internet Explorer 10: n ja Internet Explorer Mobilen tuki on poistettu käytöstä.
  • Angular Package Format ei enää sisällä ESM5- tai FESM5-paketteja, mikä säästää lataus- ja asennusaikaa käynnissä lanka tai npm asentaa kulmapaketeille ja kirjastoille.
  • Kääntäjälle on lisätty nimialueet ominaisuusluvuille ja menetelmäpuheluille.
  • EntryPointFinder, ohjelmapohjainen lähtökohdahaku, on lisätty, joka voidaan tuoda tuonnista tsjconfig.json-tiedoston määrittelemään ohjelmaan. Tämän odotetaan olevan nopeampi kuin DirectoryWalkerEntryPointFinder kun aktiivinen ohjelma tuo vain pienen osan asennetuista sisääntulopisteistä.
  • Automaattinen täydennys poistetaan HTML-entiteeteistä, kuten & amp, kyseenalaisen arvon ja suorituskykyongelman vuoksi.
  • Selkeä kartoitus on alttiina devmode-tiedostojen sulkemisesta. Tämä ominaisuus on tarkoitettu kehitystyökaluille, joiden on muunnettava tuotannon rakentamisen panokset devmode-ekvivalenteiksi.
  • Murtavassa muutoksessa geneerinen valmiste on tehty pakolliseksi ModuleWithProviders. Verkkotunnukselle on vaadittu yleinen tyypin parametri ModuleWithProviders malli toimimaan Ivy-kääntö- ja renderöintiputken kanssa, mutta ennen tätä sitoutumista View Engine antoi yleisen tyypin pois. Jos kehittäjä käyttää ModuleWithProviders Ilman yleistä tyyppiä version 10 muuttaminen päivittää koodin. Mutta jos kehittäjä käyttää View Enginen ja kirjastosta riippuen, joka jättää yleisen tyypin, muodostetaan koontivirhe. Tässä tapauksessa ngcc ei auta ja siirto kattaa vain sovelluskoodin. Kirjaston tekijään tulee ottaa yhteyttä kirjaston korjaamiseksi. Kiertotapana skipLibChecks voidaan asettaa epätosi-asetukseksi tsconfig tai päivittää sovellus käyttämään vain Ivyä.
  • TypeScript 3.9 on nyt esillä, ja tuki TypeScript 3.8: lle on poistettu. Tämä on murtava muutos. TypeScript 3.6 ja TypeScript 3.7 eivät myöskään enää tue.
  • Kääntäjä-cliin on tehty tyyppitarkistuksen suorituskyvyn parannuksia.
  • Suorituskyvyn parantamiseksi lasketaan basePaths on tehty laiskaksi, joten työtä tehdään vain tarvittaessa TargetedEntryPointFinder. Aiemmin, basePaths laskettiin aina, kun etsintä aloitettiin, mikä oli tuhlausta vaivaa siinä tapauksessa, että kohdennettu sisääntulopiste oli jo käsitelty.
  • Useiden käännöstiedostojen yhdistämistä tuetaan. Aikaisemmin vain yksi käännöstiedosto oli sallittu aluetta kohti. Nyt käyttäjät voivat määrittää useita tiedostoja aluekohtaisesti, ja kunkin tiedoston tapahtumat yhdistetään viestitunnuksella.
  • Async-lukituksen aikakatkaisut voidaan määrittää. Tämä lisää tuen ngcc.config.js-tiedostolle yritä uudelleen ja yritä viivästyä uudelleen AsyncLocker-asetukset. Integraatiotesti lisää uuden tarkistuksen aikakatkaisulle ja lyhentää aikakatkaisuaikaa ngcc.config.js avulla, jotta testi ei vie liian kauan.
  • Katkaisevassa muutoksessa tuntemattomia elementtejä koskevat varoitukset kirjataan nyt virheinä. Vaikka tämä ei riko sovellusta, se saattaa laukaista työkalut, jotka eivät odota mitään kirjautumista konsolin.error kautta.
  • Toisessa rikkovassa muutoksessa mikä tahansa palauttaja, joka palaa TYHJÄ peruuttaa navigoinnin. Jotta navigointi voi jatkua, kehittäjien on päivitettävä resolverit päivittämään joitain arvoja, kuten oletus! Tyhjä.
  • Riippuvuustietojen ja ng-sisällön valitsimien lisääminen metatietoihin. Tämä ehdotettu kääntäjäominaisuus tarjoaisi lisämetatietoja, jotka ovat hyödyllisiä työkaluille, kuten Angular Language Service, tarjoten mahdollisuuden tarjota ehdotuksia kirjastoissa määritetyille direktiiveille / komponenteille.
  • Suorituskykyparannuksia, jotka on saavutettu vähentämällä lähtökohdan luettelon kokoa ja välimuistitekniikkaa manifestissa. Lisäksi riippuvuuksien välimuistiin tallentaminen tapahtuu lähtökohdan luettelossa ja luetaan sieltä sen sijaan, että sitä laskettaisiin joka kerta. Aikaisemmin, vaikka lähtökohta ei tarvinnut prosessointia, ngcc (Angular Ivy -yhteensopivuuskääntäjä) jäsennä lähtökohdan tiedostoja riippuvuuksien laskemiseksi, mikä vie paljon aikaa isojen_solmu-moduulien kohdalla.
  • Ngcc-suorituskyvyn parantamiseksi vanhentuneen lukitustiedoston välitön ilmoittaminen on nyt sallittua. Lisäksi tallennetaan välimuistissa oleva kopio jäsennetystä tsconfig-tiedostosta, jota voidaan käyttää uudelleen, jos tsconfig-polku on sama.
  • Murtavassa muutoksessa on päivitetty logiikka, joka koskee keskiyön ylittävien päiväjaksojen muotoilua. Kun muotoilet aikaa b tai B muotoinen koodi, renderoitu merkkijono ei käsitellyt päiviä kestäviä päiviä oikein. Sen sijaan logiikka oli laskemassa takaisin oletustapaukseen OLEN. Tämä logiikka on päivitetty, joten se vastaa keskiyön jälkeisen päivän jakson aikoja, joten se tuottaa nyt oikean tuloksen, kuten yöllä englannin tapauksessa. Jompaa kumpaa käyttävät sovellukset formatDate () tai DatePipe tai b jaB tämä muutos vaikuttaa muotoilukoodeihin.
  • Reitittimen, CanLoad vartija voi nyt palata Urltree. A CanLoad vartija palaamassa Urltree peruuttaa nykyisen navigoinnin ja uudelleenohjaukset. Tämä vastaa käyttäjän käytettävissä olevaa käyttäytymistä Voi aktivoida myös lisätty. Tämä ei vaikuta esilataukseen. A CanLoad suoja estää kaikki esilataukset; kaikki reitit, joissa on a CanLoad vartijaa ei esiladata eikä vartijoita suoriteta osana esilatausta.
  • Oikean arvovälin levittäminen mikrosyntaxilausekkeen ExpressionBinding-toiminnossa ParsedProperty-arvoon, mikä puolestaan ​​levittäisi span AST-mallineisiin (sekä VE että Ivy). Tämä ehdotus koskee myös kääntäjää.
  • Korjauksessa ytimeen logiikka lisätään koristamattomien luokkien siirtymiseen koristamaan koristamattomien luokkien johdetut luokat, jotka käyttävät kulmaominaisuuksia.
  • Katkaisevassa muutoksessa Urlmatcher-tyyppi heijastaa, että se voi aina palauttaa nollan.
  • Huoltotyöntekijälle on korjattu tilanne, jossa oli mahdollista, että huoltotyöntekijä ei koskaan rekisteröidy, kun on pitkäaikainen tehtävä tai toistuva aikakatkaisu.
  • Useita virhekorjauksia on tehty, mukaan lukien kääntäjä välttää määrittelemättömiä lausekkeita reikäisessä taulukossa ja ydin välttää siirtovirheen, kun tuodaan olematonta symbolia. Ytimessä on myös kiertotapa Terser-linjausvirhettä varten. Toinen virheenkorjaus tunnistaa moduulit, joihin TestBed sisältää ohitukset.
  • Angular NPM ei enää sisällä tiettyjä jsdoc-kommentteja, jotka tukevat Closure Compilerin edistyneitä optimointeja. Tämä on murtava muutos. Pakettien Closure Compiler tuki on ollut kokeellista ja rikki jo jonkin aikaa. Kuka tahansa, joka käyttää Closure Compileria, on todennäköisesti parempi kuluttaa suoraan lähteistä rakennettuja Angular-paketteja kuin käyttää NPM: ssä julkaistuja versioita. Väliaikaisena kiertotapana käyttäjät voivat harkita nykyisen rakenneputkistonsa käyttöä Closure-lipulla --compilation_level = YKSINKERTAINEN. Tämä lippu varmistaa, että rakennusputki tuottaa rakennettavia, ajettavia esineitä kustannuksella, että hyötykuorma kasvaa edistyneiden optimointien poistamisen vuoksi.