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: https://medium.com/@laco0416/aot-compilation-with-webpack-359ac9f4916f#.a1v35vlyl
  • 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.

Komentarze

Popularne posty z tego bloga

Opinie na temat hostingu linuxpl.com

Validation using ASP.NET MVC + Kendo UI + jquery validate unobtrusive

Praca ze zdalnym kodem za pomocą PhpStorm