使用ng serve --aot = true的应用程序编译器所花费的时间比仅ng serve花费的时间更多

时间:2019-06-24 08:37:23

标签: angular angular8

我是我的有角度的应用程序,我没有模块。当我用html或css更改内容时,需要花费一些时间重新编译。因此,我决定从<intent-filter> <action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" /> </intent-filter> 开始,但与没有任何标记为OnModelCreating相比,我发现运行该应用程序需要更多的时间。但是这里有什么问题,或者protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Record>(entity => { entity.HasIndex(e => e.Client) .HasName("Record_Filtered_Index") .HasFilter("([IsActive]=(1))"); }); } 的目的是什么?

任何人都可以帮助我了解ng serve --aot=true标志。

1 个答案:

答案 0 :(得分:2)

Angular提供了两种绑定应用程序的方法:

即时(JIT),可在运行时在浏览器中编译您的应用。 (当您运行ng serve时)

  • 在浏览器中编译
  • 每个文件分别编译
  • 更改代码后和重新加载浏览器页面之前无需构建
  • 适合本地发展

提前(AOT),可在构建时编译您的应用。 (当您运行ng serve --aot=true时)

  • 由计算机本身通过命令行(更快)进行编译
  • 所有代码一起编译,在脚本中内联HTML / CSS
  • 无需部署编译器
  • 适用于生产版本
  

带有--prod元标记(ng build --prod)的ng build命令默认情况下使用AOT编译。

     

在浏览器下载并运行该代码之前,Angular Ahead-of-Time(AOT)编译器会在构建阶段将Angular HTML和TypeScript代码转换为高效的JavaScript代码。在构建过程中编译应用程序可以在浏览器中提供更快的渲染速度。

JIT 在运行时编译您的应用程序时,它可以优化编译并仅构建必要的代码。因此,在开发模式下,通常使用JIT来节省完整构建的时间。使用JIT,编译时间会更快。

AOT 优化了运行速度,但是编译时间更长,这就是为什么在生产中经常使用它的原因。 AOT还将优化您的应用程序的大小,因为所有文件都将在运行之前进行编译。