Angular 2 and AOT (ahead of time) compilation

Today I managed to run AOT compilation in existing Angular 2 application.

This is a note to remember what I had to do to make it work:

  • Follow this example:
  • Downgrade Typescript to 2.0.10.
  • Downgrade Webpack to 2.1.0-beta.28.
  • Change all "template: require(path)" to "templateUrl: path". Require function is not available in AOT compilation process.
  • Had to add angular2-typescript-loader to handle ts files in webpack (loaders: isProd ? '@ngtools/webpack' : ["awesome-typescript-loader", 'angular2-template-loader']). It handles templateUrl in components.

Newest versions of libraries (ts 2.2 and webpack 2.2.0-rc.3) had documented issues with whole mechanism, so I had some fun searching for solutions.

Performance before enabling AOT compilation:

And after

Scripting took 3 seconds less and it is more than visible. Difference is huge. Scripts are now 600KB bigger, but they load once, so it is not a huge problem. AOT compilation is nice feature of Angular 2.


Popularne posty z tego bloga

Opinie na temat hostingu

Entity Framework - dodawanie / import wielu rekordów naraz

Entity Framework - inserting large number of rows