什么是AOT编译?它有什么优缺点?

terry Angular 138

AOT编译代表的是Ahead Of Time编译,其中Angular编译器在构建时,会将Angular组件和模板编译为本机JavaScript和HTML。编译好的HTML和JavaScript将会部署到Web服务器,以便浏览器可以节省编译和渲染时间。

优点:

  1. 更快的下载:由于应用程序已经编译,许多Angular编译器相关库就不再需要捆绑,应用程序包变得更小,所以该应用程序可以更快地下载。
  2. 更少的Http请求数:如果应用程序没有捆绑来支持延迟加载(或任何原因),对于每个关联的HTML和CSS,都会有一个单独的服务器请求。但是预编译的应用程序会将所有模板和样式与组件对齐,因此到服务器的Http请求数量会更少。
  3. 更快的渲染:如果应用程序不是AOT编译,那么应用程序完全加载时,编译过程会发生在浏览器中。这需要等待下载所有必需的组件,然后等待编译器花费时间来编译应用程序。使用AOT编译,就能实现优化。
  4. 在构建时检测错误:由于预先编译,可以检测到许多编译时错误,能够为应用程序提供更好的稳定性。

缺点:

  1. 仅适用于HTML和CSS,其它文件类型需要前面的构建步骤
  2. 没有watch模式,必须手动完成(bin / ngc-watch.js)并编译所有文件
  3. 需要维护AOT版本的bootstrap文件(使用cli等工具时不需要)
  4. 在编译之前,需要清理步骤

扩展阅读https://angular.io/docs/ts/latest/cookbook/aot-compiler.HTML

  • 暂无回复内容