We are happy to announce that Wijmo supports Angular 9! Wijmo Build 5.20193.637 adds support for the Angular v9.0.0-rc.2 release. Wijmo is now compatible with the new Ivy Compiler.
Supporting the Ivy Compiler
We have been working closely with the Angular team to make sure we can support the new Ivy Compiler so our customers can use Angular v9 when it releases. The Angular team helped us with some recommendations in our module packaging and fixed some compiler issues as well. During this process, we also migrated to use the Terser minifier for better parsing in the Ivy Compiler based on the Angular team's recommendation.
We are grateful for the good relationship we have with them and that they are supportive of component developers like us. They also published a nice Ivy Compatibility Guide that might help you migrate to Angular 9 too.
Angular 9 Release Plans
As always, we plan to support Angular 9 on the day of its official release. We will continue to provide quality components to Angular developers for each new version of the framework.
So thanks to the Angular and Wijmo teams, you can start building even faster enterprise applications with the Ivy Compiler.
Get Started with Wijmo in Angular 9
To get started, you will need to install the Angular v9.0.0-rc.2 release. It is required because there are some changes in it to help wijmo work in Ivy.
Then you can install Wijmo's angular components like so:
npm install @grapecity/wijmo.angular2.all
This will install Wijmo version 637 or higher and will be compatible with Angular 9.
Make sure to take a look at all of our Angular component samples, like our famous Angular FlexGrid.
Component Metadata Changes
We had to change definitions for components’ metadata variables. Before they looked like:
export var wjFlexGridMeta: IWjComponentMeta = { … }
Now they look like:
var wjFlexGridMeta: IWjComponentMeta = { … }
export { wjFlexGridMeta }
Minification Changes
We changed to use Terser for a minifier and also changed some minifier options. Before we used just default settings, but now we use these options:
{
keep_classnames: true,
keep_fnames: true,
compress: {
sequences: false
}
};
The keep_classnames and keep_fnames keep class and function names respectively, which allows the compatibility compiler to correctly retrieve components’ metadata. The ‘sequences’ option is disabled to prevent Terser from serializing the code to comma-separated statements, which may bring some problems in code parsing performed by the compiler.
Known Issue
The only known issue in build 637 is that WjComponentLoader is not working. This is a rarely used component that creates Wijmo Angular components dynamically using their class reference.
This issue has already been solved and will be available in nightly builds soon!
Please also submit any issues you have with Wijmo in Angular 9 to the Wijmo forum.