About 14 hours ago the Angular team hit the big red button and pushed Angular 6 to production. So what’s new?
You can read the official announcement here but I wanted to give you my take on the update.
First off, Angular v6 is the first release that unifies the Framework, Material and CLI. In other words,
- @angular/angular = 6.0.0
- @angular/cli = 6.0.0
- @angular/material = 6.0.0.
This was a necessary change but all the version number skips are making my head spin.
In case you don’t know what I mean: The version numbers went like this
- Angular CLI
- Angular Material
I hope the Angular team are done with skipping version numbers.
Arguably, the Angular CLI got the biggest bump. The stand out feature is Schematics. Schematics are the engine behind ng add and ng update. I will talk more about this in a future newsletter.
Another painful change. The angular-cli.json file got renamed angular.json.The upgrade path is painless (run ng update and follow the instructions) but the rename is bound to confuse people.
Out-of-date documentation is one of the biggest complaints I hear and renaming this file just made every Angular CLI webpage defunct. Seriously guys, you need to stop doing this. It’s confusing your customers. We are 2 years and 5 versions into Angular. We shouldn’t have to deal with this sort of change.
In the good news column, Angular CLI picks up support for Webpack 4 = faster builds. Yay to that.
Angular CLI now supports multiple individual applications within one workspace. No complaints here. I’ve been waiting for this.
Angular CLI now comes with library support. Another welcome addition. Creating and publishing Angular libraries is now super easy.
The mantra on the Angular CLI teams seems to be: “automate, automate, automate”. What’s not to like about that?
Angular Material picks up a lot of new widgets. I’ll come back to these in future. But seriously, what’s not to love? Angular Material just gets better and better.
Next up, we have the Angular Framework itself and I’ve saved the best till last. Angular 6 introduces Angular Elements.
Angular Elements are Angular components packaged as custom elements, a web standard for defining new HTML elements in a framework-agnostic way.
Angular Elements are a game changer and I will come back to this standout feature in a future newsletter.
Did you know that services are not tree-shakable? I didn’t so I was surprised to read that Angular 6 introduces Tree Shakable Providers. There’s not much to say here other than smaller bundles and better lazy loading is a win-win. Unfortunately, you need to change the way you include services in your code but it’s not a big change and the pay off makes the pain worthwhile.
And finally, rxjs v6 is now supported. I could write a whole article about why rxjs v6 is so great but I’ll point you to this video from ng-conf.
But wait, there’s more and I’ll deep dive into that stuff in a future newsletter.
I’d give Angular 6 a big thumbs up. Why don’t you hit reply and tell me what you think?
Darryl Brown is an Angular upgrade specialist. Do you need help upgrading from AngularJS? Check out my website darrylbrown.co.uk