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 optimointiinCanLoad
vartijat. ProgramBasedEntryPointFinder
käytetään uudelleenEntryPointManifest
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äänng-moduuli
sääntö, jolloin linkkeri voi linkittää oikeinng_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
tainpm 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 kuinDirectoryWalkerEntryPointFinder
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 parametriModuleWithProviders
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 tarvittaessaTargetedEntryPointFinder
. 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
jayritä 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, kutenoletus! 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
taiB
muotoinen koodi, renderoitu merkkijono ei käsitellyt päiviä kestäviä päiviä oikein. Sen sijaan logiikka oli laskemassa takaisin oletustapaukseenOLEN
. Tämä logiikka on päivitetty, joten se vastaa keskiyön jälkeisen päivän jakson aikoja, joten se tuottaa nyt oikean tuloksen, kutenyöllä
englannin tapauksessa. Jompaa kumpaa käyttävät sovelluksetformatDate ()
taiDatePipe
taib
jaB
tämä muutos vaikuttaa muotoilukoodeihin. - Reitittimen,
CanLoad
vartija voi nyt palataUrltree
. ACanLoad
vartija palaamassaUrltree
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. ACanLoad
suoja estää kaikki esilataukset; kaikki reitit, joissa on aCanLoad
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.