Programovanie

Čo je nové v Angular 10.1

Angular 10.1.0, následné vydanie verzie Angular 10, bolo vydané 2. septembra a prinieslo vylepšenie výkonu kompilátora a smerovača spolu s novým nástrojom na extrakciu správ.

Angular 10 bol všeobecne dostupný ako produkčné vydanie 24. júna. Hlavná aktualizácia rámca vyvinutého spoločnosťou Google, založeného na stroji TypeScript, kládla väčší dôraz na zlepšenie kvality, nástrojov a ekosystémov ako na nové funkcie.

Angular 10 je menší ako predchádzajúce verzie Angular. Medzi nové možnosti patrí nový výber rozsahu dátumov v knižnici komponentov rozhrania Angular Material UI a varovania pred importom CommonJS. Varovania týkajúce sa importu CommonJS varujú vývojárov, keď závislosť zabalená do CommonJS môže mať za následok väčšie a pomalšie aplikácie, čo vývojárom umožní nahradiť balík modulov ECMAScript.

Voliteľné prísnejšie nastavenia navyše ponúkajú prísnejšie nastavenie projektu pri vytváraní nového pracovného priestoru pomocou nástroja nové, cez nové - prísne. Povolenie tohto príznaku inicializuje nový projekt s novými nastaveniami na zlepšenie udržiavateľnosti, pomoc pri chytaní chýb a umožnenie rozhraniu CLI vykonávať pokročilé optimalizácie aplikácie.

Kde stiahnuť Angular 10

Všeobecné vydanie Angular 10 nájdete na GitHub. Ak chcete aktualizovať svoju aktuálnu inštaláciu Angular, môžete spustiť tento príkaz:

ng update @ angular / cli @ angular / core

Nové funkcie v Angular 10.1.0

Vydanie Angular 10.1.0, dostupné na GitHub, obsahuje nasledujúce nové funkcie a vylepšenia:

  • Aby sa zlepšil výkon v klipe kompilátora, Angular 10.1 má opravu regresie výkonu ovplyvňujúcu postupné opätovné použitie programu.
  • Pre výkon routera slúži prioritizedGuardValue operátor sa používa na optimalizáciu CanLoad stráže.
  • ProgramBasedEntryPointFinder bude opätovne použité EntryPointManifest načítať závislosti vstupného bodu, keď je to možné, čo zabráni tomu, aby ste ich museli znova analyzovať pri každom vyvolaní súboru ngcc.
  • Je podporovaný nový nástroj na extrakciu správ, ktorý bude nakoniec integrovaný do CLI.
  • Pre nástroj Bazel build, LinkabablePackageInfo sa pridáva do skupiny ng-modul pravidlo umožňujúce linkeru správne prepojenie ng_module ciele v behových akciách Node.js.
  • K diagnostike vytvorenej pre chyby statického vyhodnotenia sa pridáva ďalší prehľad.
  • Bola pridaná možnosť pre podporu absolútnych URL HTTP.
  • Do kompilátora bola pridaná podpora TypeScript 4.0.
  • canparse () diagnostiky sú vystavené.
  • Zlepšili sa výkon smerovača, formulárov, rozhrania CLI kompilátora a nástroja kompatibility kompilátora ngcc.
  • Úpravy háčikov životného cyklu je možné vykonať kedykoľvek pred bootstrapom.
  • Pre jadro, smerovač a ďalšie časti systému Angular je ponúkaných niekoľko veľkých opráv.

Nové funkcie v Angular 10

Medzi kľúčové vlastnosti Angular 10 patria:

  • TSlib, runtime knižnica pre TypeScript obsahujúca pomocné funkcie, bola aktualizovaná na TSlib 2.0. Nástroj statickej analýzy TSLint pre TypeScript bol aktualizovaný na TSLint 6.
  • Bolo pridané rozhranie kompilátora, ktoré obsahuje skutočný kompilátor ngtsc. Kompilátor špecifický pre jazykové služby spravuje viac súborov typeck pomocou rozhrania projektu a podľa potreby vytvára Scriptinfos.
  • Konfigurácia prehľadávača pre nové projekty bola aktualizovaná tak, aby vylučovala staršie a menej používané prehľadávače. Podpora pre Internet Explorer 9, Internet Explorer 10 a Internet Explorer Mobile je zastaraná.
  • Angular Package Format už neobsahuje zväzky ESM5 alebo FESM5, čím sa šetrí čas potrebný na stiahnutie a inštaláciu pri spustení priadza alebo npm nainštalovať pre uhlové balíčky a knižnice.
  • Pre kompilátor boli pridané rozpätia mien pre čítanie vlastností a volania metód.
  • EntryPointFinderBol pridaný programový vyhľadávač vstupných bodov, ktorý je možné naočkovať z importov v programe určenom súborom tsjconfig.json. Očakáva sa, že to bude rýchlejšie ako DirectoryWalkerEntryPointFinder keď aktívny program importuje iba malú časť nainštalovaných vstupných bodov.
  • Automatické dopĺňanie sa odstraňuje z entít HTML, ako sú napr & ampkvôli pochybnej hodnote a problémom s výkonom.
  • Explicitné mapovanie je vystavené od ukončenia do súborov devmode. Táto vlastnosť je zameraná na vývojové nástroje, ktoré musia prevádzať vstupy z výroby do svojich ekvivalentov devmode.
  • V prelomovej zmene bolo všeobecné použitie povinné pre ModuleWithProviders. Pre parameter sa vyžaduje parameter všeobecného typu ModuleWithProviders pattern to work with the Ivy compilation and rendering pipeline, but before this commit, View Engine allow the generic type to be vynechané. Ak vývojár používa ModuleWithProviders bez generického typu sa migráciou verzie 10 aktualizuje kód. Ak ale vývojár používa View Engine a v závislosti na knižnici, ktorá vynecháva všeobecný typ, dôjde k chybe zostavenia. V takom prípade ngcc nepomôže a migrácia sa bude týkať iba kódu aplikácie. Je potrebné kontaktovať autora knižnice, aby opravil svoju knižnicu. Ako náhradné riešenie by bolo možné nastaviť skipLibChecks na tsconfig alebo na aktualizáciu aplikácie tak, aby používala iba Ivy, na hodnotu false.
  • Teraz je k dispozícii TypeScript 3.9 a podpora pre TypeScript 3.8 bola odstránená. Toto je prelomová zmena. TypeScript 3.6 a TypeScript 3.7 tiež už nie sú podporované.
  • V kompilátorovom klipe boli urobené vylepšenia výkonu pri kontrole typu.
  • Na zlepšenie výkonu sa počíta výpočet basePaths bol lenivý, takže práca sa vykonáva iba v prípade potreby v TargetedEntryPointFinder. Predtým basePaths bola vypočítaná vždy, keď bola inštancia vyhľadávača vytvorená, čo bola zbytočná námaha v prípade, že cieľový vstupný bod už bol spracovaný.
  • Zlúčenie viacerých prekladových súborov je podporované. Predtým bol povolený iba jeden prekladový súbor na miestne nastavenie. Teraz môžu používatelia určiť viac súborov na miestne nastavenie a transakcie z každého súboru sa zlúčia pomocou ID správy.
  • Je možné nakonfigurovať časové limity asynchronného blokovania. Týmto sa pridáva podpora pre súbor ngcc.config.js pre nastavenie súboru retryAttempts a retryDelay možnosti pre AsyncLocker. Integračný test pridáva novú kontrolu časového limitu a pomocou súboru ngcc.config.js skracuje časový limit, aby zabránil príliš dlhému testu.
  • Pri zlomovej zmene sa teraz varovania o neznámych prvkoch zaznamenávajú ako chyby. Aj keď to aplikáciu nerozbije, mohlo by dôjsť k spusteniu nástrojov, ktoré neočakávajú, že sa prostredníctvom konzoly.error zaznamená nič.
  • V ďalšej zlomovej zmene akýkoľvek resolver, ktorý sa vráti PRÁZDNY zruší navigáciu. Ak chcete umožniť pokračovanie navigácie, vývojári musia aktualizovať prekladače, aby aktualizovali určitú hodnotu, ako napr predvolené! prázdne.
  • Pridanie informácií o závislosti a selektorov obsahu ng do metadát. Táto navrhovaná funkcia kompilátora by poskytla ďalšie metadáta užitočné pre nástroje, ako je napríklad služba Angular Language Service, ktorá ponúka možnosť poskytovať návrhy smerníc / komponentov definovaných v knižniciach.
  • Zlepšenia výkonu dosiahnuté zmenšením veľkosti manifestu vstupného bodu a techniky ukladania do pamäte cache v manifeste. Okrem toho sa ukladanie závislostí do vyrovnávacej pamäte vykonáva v manifeste vstupného bodu a číta sa odtiaľ skôr, než aby sa zakaždým počítalo. Predtým, aj keď vstupný bod nepotreboval spracovanie, ngcc (prekladač kompatibility Angular Ivy) analyzoval súbory vstupného bodu na výpočet závislostí, čo by pre moduly large_node trvalo veľa času.
  • Na zlepšenie výkonu programu ngcc je teraz povolené okamžité hlásenie o zastaranom súbore zámku. Okrem toho je uložená kópia parsovaného súboru tsconfig v medzipamäti, ktorú je možné znovu použiť, ak je cesta tsconfig rovnaká.
  • V zlomovej zmene bola aktualizovaná logika týkajúca sa formátovania denných období, ktoré prekračujú polnoc. Pri formátovaní času pomocou b alebo B formátovaný kód, vykreslený reťazec nespracovával správne denné obdobia, ktoré trvali dni. Namiesto toho logika klesala späť na predvolený prípad AM. Táto logika bola aktualizovaná, takže sa zhoduje s časmi v rámci denného obdobia, ktoré presahuje polnoc, takže teraz bude poskytovať správny výstup, napríklad v noci v prípade angličtiny. Aplikácie využívajúce buď formatDate () alebo DatePipe alebo b aB kódov formátu bude táto zmena ovplyvnená.
  • Pre smerovač CanLoad strážca sa teraz môže vrátiť Urltree. A CanLoad strážca sa vracia Urltree zruší aktuálnu navigáciu a presmerovania. Toto sa zhoduje s aktuálnym správaním dostupným pre Môže sa aktivovať stráže, ktorá tiež bola pridaná. Toto nemá vplyv na predbežné načítanie. A CanLoad kryt blokuje akékoľvek predpätie; akékoľvek trasy s a CanLoad strážca nebude predpätý a stráže nebudú popravené v rámci predbežného načítania.
  • Šírenie rozsahu správnych hodnôt v ExpressionBinding výrazu microsyntax na ParsedProperty, čo by zase rozšírilo rozsah na šablónu AST (VE aj Ivy). Tento návrh je určený aj pre prekladač.
  • Pri oprave jadra by sa do migrácie nedekorovanej triedy pridala logika, ktorá by zdobila odvodené triedy nedekorovaných tried, ktoré používajú uhlové vlastnosti.
  • Pri zlomovej zmene bude Urlmatcherov typ odrážať, že by sa vždy mohol vrátiť na nulu.
  • Pre servisného pracovníka bola zavedená oprava pre situáciu, v ktorej bola šanca, že sa servisný pracovník nikdy nezaregistruje, keď existuje dlhotrvajúca úloha alebo opakujúci sa časový limit.
  • Bolo urobených niekoľko opráv chýb, vrátane kompilátora, ktorý sa vyhýbal nedefinovaným výrazom v diernom poli a jadra, ktoré zabráni chybe migrácie, keď sa importuje neexistujúci symbol. V jadre je tiež riešenie problému so zabudovanou chybou Terser. Ďalšia oprava chyby správne identifikuje moduly ovplyvnené prepísaním v TestBed.
  • Angular NPM už neobsahuje určité komentáre jsdoc na podporu pokročilých optimalizácií kompilátora uzáveru. Toto je prelomová zmena. Podpora pre Closure Compiler v balíkoch je už nejaký čas experimentálna a prerušená. Každý, kto používa program Closure Compiler, pravdepodobne bude mať lepšiu konzumáciu balíkov Angular vytvorených priamo zo zdrojov, ako konzumáciu verzií publikovaných na NPM. Ako dočasné riešenie môžu používatelia zvážiť použitie svojho aktuálneho kanálu zostrojenia s príznakom Closure --compilation_level = JEDNODUCHÉ. Tento príznak zabezpečí, že zostavovací kanál produkuje zostaviteľné a spustiteľné artefakty za cenu zvýšenia veľkosti užitočného zaťaženia v dôsledku deaktivácie pokročilých optimalizácií.
$config[zx-auto] not found$config[zx-overlay] not found