angular.json: The Angular Workspace – part 5

Last time we started exploring the projects property. Today we will finish off the projects property and wrap up my coverage of the Angular Workspace file.

architect

The architect property tells Angular how to build, bundle, serve, test and lint a project. It might help to think of the architect property as the architecture target property. Either way, the Angular team could have picked a better name.

Here’s an example:

build, serve, extract-i18n, test, lint

The buildserve etc. properties are very similar. They each have a builder property, options property and configuration property. I really like this. It makes configuring Angular much easier.

The builder property tells Angular which library to use to build the project. Angular includes a suite of builders. It’s not hard to imagine how this will expand in future. Switching to Ivy will be easy.

The options property is specific to the library defined in the builder property. To be frank, the list of options is mindboggling and too complicated to cover here.

The configurations property tells Angular how to switch between development mode and production mode. This property hasn’t changed much from previous versions of the Angular CLI. Note: The environment configuration files (./src/environments/*.ts) hasn’t changed.

Summary

The Angular team have put a lot of thought and effort into streamlining the Angular Workspace. The new configuration is simple and logical. Change is always disruptive but, in my opinion, this one is worth it.

ng update should take the pain out of upgrading. The process is automated and most projects will upgrade without any manual intervention.

The Angular Workspace is a great addition to Angular. It’s obvious the Angular team have thought about the future and planned for it. The Angular Workspace won’t need a rewrite for years.

<< part 4

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.