【MMR-A】Angular Compiler 遷移至 TypeScript Transformation API

類別

必要重構/Meaningful Marvelous Refactor

置信度

Announcement

起始時間

2017-08-11

內容

早在 2017 年 2 月,TypeScript 就已經開放了 Transformation API,提供了對 Tranformation Plugin 的事實支持。

隨後 Angular 也增加了基於 Transformation API 的新 Compiler CLI 入口,不過並未啟用。

在<del>最新</del>比最新還新的 5.0.0-beta.4 版本(暫定)中,Compiler CLI 的默認入口被修改為基於 Transformation API 的新版本,同時增加了一個編譯器選項,用於配置 Compiler CLI 的入口:

{n "angularCompilerOptions": {n "disableTransformerPipeline": truen }n}n

新的 Compiler CLI 對 TypeScript 的版本要求將上升到 2.3 以上。

啟用新的 Compiler CLI 後,Angular Compiler 將<del>墮落</del>演進為 TypeScript Compiler 的 Plugin,從而減少不必要的資源消耗以及獲得更好的工具支持,同時也為之後的 watch 模式做好了準備。

目前,ts-loader 和 awesome-typescript-loader 均已支持 Transformation API:

  • support custom transformers for ts 2.3 by longlho · Pull Request #535 · TypeStrong/ts-loader
  • getCustomTransformers by goloveychuk · Pull Request #418 · s-panferov/awesome-typescript-loader

相關鏈接

  • TypeScript 增加 Transformation API 的 PR:Expose public API for transformation. by rbuckton · Pull Request #13940 · Microsoft/TypeScript
  • Angular 增加 TypeScript Transformation API 支持的 Commit:feat(compiler-cli): new compiler api and command-line using TypeScrip… · angular/angular@8054adf
  • Angular 啟用 TypeScript Transformation API 支持的 Commit:refactor(compiler-cli): use the transformer based compiler by default · angular/angular@679608d

推薦閱讀:

TAG:Angular? | TypeScript |