2017-11-08 32 views
6

Właśnie przeczytałem artykuł na oficjalnym blogu kątowym 5 (https://blog.angular.io/version-5-0-0-of-angular-now-available-37e414935ced). Mówi się o transformacji maszynopisu. W szczegółach:czym jest transformata maszynopisu

"TypeScript Transforms Pod maską kompilator Angular działa teraz jako transformacja języka TypeScript, co znacznie przyspiesza odbudowę. Transformacje TypeScript to nowa funkcja wprowadzona w ramach TypeScript 2.3, która umożliwia nam podpięcie się do standardowy potok kompilacji TypeScript. "

Chciałbym lepiej to zrozumieć. Tranformy lub kompilacja rurociągu, jakie są? tnx!

Odpowiedz

0

To odwołuje się do wewnętrznych, w jaki sposób skrypt maszynowy generuje kod JavaScript. Od wersji 2.3 kompilator przyjmuje AST (Typowe drzewo składniowe) i stosuje serię transformacji (potok transformacji). Na końcu rurociągu otrzymujesz nowy AST, który jest JavaScript AST.

z kodu źródłowego, to są prądowe:

Typescript Transformers

Tak na przykład podczas kompilacji dla es5 docelowego z jsx włączona i system moduły następujące transformacje będą obejmowały:

  • transformTypeScript - Usunie adnotacje typu maszynopis

  • transformJsx - Usunie jsx składni i przekształcić go JavaScript

  • transformESNext - przemieni esnext do es2017

  • transformES2017 - przemieni es2017 do es2016

  • transformES2016 - przemieni es2016 do es2015

  • transformES2015 - przemieni es2015 do es5 (minus generatory)

  • transformGenerators - przemieni es2015 generatory do es5

  • transformSystemModule - Doda moduł specyficzny dla js.

Po zastosowaniu wszystkich transformacji napisanie AST do pliku jest trywialną operacją.