0

我知道“ ahead of time compilation”在构建时提供编译。还有很多其他优点,--aot例如

  • 应用程序是预编译的,所以没有这样的等待模板

  • 绑定错误将在构建时知道等。

但是,还有一个选项可以设置--aot为 false(对于 prod 构建也是如此)。为什么我们需要设置--aotfalse?换句话说,它--jit提供了什么样的优势?我只是想了解使用--aotover是否有任何缺点,--jit因为否则,听起来--aot即使在开发版本中我也应该始终使用。如果使用 没有权衡--aot,那么为什么不将其设置为ng buildand的默认值ng serve

4

2 回答 2

0

正如@Ingo Burk 在评论中提到的那样,我最终得到了相同的发现,所以我想将其发布为答案。

我发现的另一个有趣的事情是,

但是在版本 5 及更高版本中,编译器会在发出 .js 文件时自动执行此重写

于 2020-02-21T20:28:34.253 回答
0

AOT 在性能方面很好,因为代码在加载到浏览器之前就像在 JIT 中一样被编译。它现在在 Angular 8 之后默认可用。@CuriousBOy 和 @Ingo 提到了一些首选 Jit 的用例。

我想为动态组件和模块渲染添加另一个用例。

如果您需要在运行时创建组件并想要渲染它,您可能需要在浏览器中进行 JIT, 因为 AOT 将无法编译代码,因为 Dynamic 组件和 Dynamic 模块在构建时不可用

于 2021-07-31T16:13:36.687 回答