Chasing the Holy Grail of NG Development: Angular CLI, npm Library, and Packaging

It is amazing how far we have come on the JavaScript side of the house. Creating UI richness in the browser has always been the holy grail. From Flash to Applets to old-school DHTML and outside solutions like Java Webstart, we have never been as close to that holy grail of rich desktop-like applications in the browser as we are today.
The combination of HTML 5 and Angular 2+ (NG2) has brought us closer to Avalon than ever before. Using these two recent technologies, front-end web developers have created richer desktop-like apps in recent years than any single library or technology has before. HTML 5 and NG2 development does not require a browser plugin or some other client-side binary to be installed like a Flash or Java solution and it works well across browsers and operating systems. While NG2 has a lot to offer, it also brought some complexity to the JavaScript side of the equation that was not previously as common when using good old jQuery. Not only does NG2 rely heavily on ASYNC programming but also carries with it a number of established OO Design Patterns. All of this is accomplished through TypeScript. While it is true, at the end of the day, that code in the browser is just plain old JavaScript, it is written as TypeScript and gets compiled. This provides us lots of benefits like compile-time checking of code and even some interesting performance options using NG Ahead-of-Time Compilation.