Angular - Ivy 编译器



Ivy 编译器是 Angular 团队发布的最新 Angular 应用编译器。目前,Angular 使用View Engine编译器来编译 Angular 应用。

一般来说,Angular 编译器有两种编译应用的方式。

即时 (JIT) 编译器

即时 (JIT)编译中,编译器将与应用程序一起打包并发送到浏览器。Angular 应用将在浏览器中编译,并在应用执行前运行。

尽管JIT提供了一些高级特性,但JIT会减慢编译速度,并且应用包的大小也会是AOT编译器生成的的两倍,因为它也包含了编译器。

提前 (AOT) 编译器

AOT编译中,编译器将发出优化的代码,可以直接在浏览器中运行,无需任何额外步骤。这将减小包的大小,并缩短应用的编译时间和启动时间。

Ivy 编译器的优点

Ivy 编译器是 Angular 的优化和高级编译器。虽然目前尚未完全完成,但在 Angular 中已经可以使用。Angular 团队建议开发者在 Angular 中使用它。

Ivy 编译器的主要优点如下:

  • 优化后的代码。
  • 更快的构建时间。
  • 更小的包大小。
  • 更好的性能。

如何使用 Ivy?

可以通过更改项目设置来在 Angular 应用中使用Ivy 编译器,如下所示:

打开 `angular.json` 并将项目的 `aot` 选项设置为 `true` (**projects -> -> architect -> build -> configurations -> production**)。

{
   "projects": {
      "my-existing-project": {
         "architect": {

            "build": {
               "options": {
                  ...
                  "aot": true,
               }
            }
         }
      }
   }
}

打开 `tsconfig.app.json`,并在 `angularCompilerOptions` 下将 `enableIvy` 设置为 `true`。

{ 
   ... 
   "angularCompilerOptions": { 
      "enableIvy": true 
}

编译并运行应用程序,即可体验Ivy 编译器带来的好处。

广告