@yourtwitter
@mgechev
● Define an NgModule
● Declare a lazy route
● Declare a default route in the NgModule
● Define a component for the default route
● (Optional) Introduce a routing module
Creating a lazy route
Slide 16
Slide 16 text
$ ng g module ranking --route ranking --module app.module
Angular CLI version 8.1
Slide 17
Slide 17 text
Module name
$ ng g module ranking --route ranking --module app.module
Angular CLI version 8.1
Slide 18
Slide 18 text
Path to the lazy route
$ ng g module ranking --route ranking --module app.module
Angular CLI version 8.1
Slide 19
Slide 19 text
Parent module
$ ng g module ranking --route ranking --module app.module
Angular CLI version 8.1
twitter.com/mgechev
Step 1: Open
https://example.com/
Step 2: Determine JavaScript
which is likely to be required
Step 3: Download the
chunks
Step 4: Store chunks
in browser cache
Preloading
Slide 29
Slide 29 text
@mgechev
Slide 30
Slide 30 text
@mgechev
Slide 31
Slide 31 text
@mgechev
Slide 32
Slide 32 text
@mgechev
Slide 33
Slide 33 text
@mgechev
Slide 34
Slide 34 text
@mgechev
Slide 35
Slide 35 text
@mgechev
Slide 36
Slide 36 text
@mgechev
Slide 37
Slide 37 text
@mgechev
Slide 38
Slide 38 text
@mgechev
Slide 39
Slide 39 text
@mgechev
Slide 40
Slide 40 text
@mgechev
Power in Constraints by Rado Kirov
Slide 41
Slide 41 text
@mgechev
A performance budget is a
limit for pages which the
team is not allowed to
exceed.
Addy Osmani
Slide 42
Slide 42 text
@yourtwitter
Performance Budgets
enforces constraints to let
you have guarantees
v8.0.0
angular.io/guide/build
@yourtwitter
@mgechev
Builders API
● Provides extensibility points to the CLI
● Implement a custom functionality
● Introduce builder with ng-add schematic
● Update angular.json
● Optionally introduce custom config
Slide 62
Slide 62 text
@mgechev
ng run app:builder
Slide 63
Slide 63 text
@mgechev
@BenjaminDobler
Slide 64
Slide 64 text
@yourtwitter
@mgechev
● All the deployment builders
● @ud-angular-builders/jest - Jest builder
● Nx tooling
● ngx-build-plus - custom webpack config
● @richapps/ngtron - electron support in the CLI
● @richapps/ngnode - build node.js apps with the CLI
● Over 60 more
Other community builders
Slide 65
Slide 65 text
@mgechev
Learn more about builders
angular.io/guide/cli-builder
Slide 66
Slide 66 text
@mgechev
Building at Scale
Bazel + builders API
Slide 67
Slide 67 text
No content
Slide 68
Slide 68 text
@mgechev
Who’s using Bazel
Slide 69
Slide 69 text
No content
Slide 70
Slide 70 text
@mgechev
Bazel & Angular Layering
Bazel
Plugins for Node.js & Angular
Builders API & Angular CLI
Slide 71
Slide 71 text
@mgechev
Bazel & Angular Layering
Bazel
Plugins for Node.js & Angular
Builders API & Angular CLI
Slide 72
Slide 72 text
Bazel 1.0.0 release
this month
Slide 73
Slide 73 text
@mgechev
Bazel & Angular Layering
Bazel
Plugins for Node.js & Angular
Builders API & Angular CLI
Slide 74
Slide 74 text
@mgechev
Bazel & Angular Layering
Bazel
Plugins for Node.js & Angular
Builders API & Angular CLI
Slide 75
Slide 75 text
@mgechev
Slide 76
Slide 76 text
@mgechev
Slide 77
Slide 77 text
@mgechev
youtu.be/J1lnp-nU4wM
Slide 78
Slide 78 text
@mgechev
bazel.angular.io
Slide 79
Slide 79 text
@yourtwitter
@mgechev
● You don’t need Bazel to use Angular
● It’s worth it to understand Bazel as a
software engineer
● Teaches good practices
● Reusable skills across technologies
Should I learn Bazel?
Slide 80
Slide 80 text
@yourtwitter
@mgechev
● Moving the web platform forward
● Automating DX
● Working on intelligent tooling
● Enabling best practices
● Building at scale
Recap