Bazel allows us to break an application into distinct build units. In Angular, build units are defined at the NgModule level. This means the scope of a build can be as granular as a single NgModule. If a change is internal to an NgModule, only that module needs to be rebuilt.
Closure Compiler is a JavaScript optimizer written and used at Google. We compile most of our Angular apps with it, to produce the smallest JavaScript bundles.
https://github.com/angular/closure-demo/wiki