標籤:

【MMR-A】AOT 編譯的模塊導入優化

類別

必要重構/Meaningful Marvelous Refactor

置信度

Announcement

起始時間

2017-02-15

內容

現有的 AOT 模式下,編譯結果中會帶有多個模塊子路徑的導入,類似於:

/* tslint:disable */nimport * as import0 from ./hello-world.component;nimport * as import1 from @angular/core/src/linker/view;nimport * as import3 from @angular/core/src/linker/view_utils;nimport * as import4 from @angular/core/src/metadata/view;nimport * as import5 from @angular/core/src/linker/view_type;nimport * as import6 from @angular/core/src/change_detection/constants;nimport * as import7 from @angular/core/src/linker/component_factory;nn//...n

而自 4.0.0-beta.8 版本開始,AOT 編譯器對模塊導入語句的生成進行了優化,不再需要使用子路徑,而是全部從模塊的入口導入:

import * as import0 from ./hello-world.component;nimport * as import1 from @angular/core/index;nn//...n

而為了避免私有的導出內容被用戶不小心導入,所有的私有導出內容使用了特殊的 Unicode 前綴 ?,所以使用私有導出內容的代碼變為:

class View_HelloWorldComponent_Host_0 extends import1.?AppView {n //...n}n

使用模塊入口的方式更便於一些構建工具處理。

相關鏈接

  • 優化 AOT 模塊導入語句的 Commit:generate shallow imports compiler generated reference… · angular/angular@8b81bb1 · GitHub

推薦閱讀:

集智 2017 年 10 月 26 日 更新日誌v1.7.0-rc ????

TAG:Angular? |