Parece que Angular Ivy aún no está lista. Estoy tratando de construir mi proyecto usando ivy, que es la idea principal para Angular 9. Muchas de las bibliotecas no son compatibles con esta característica, una de estas bibliotecas es @angular/flex-layout . El material y el trabajador de servicios también tienen el mismo problema.
Después de usar ng build --prod --aot -c=production script para compilar mi proyecto, obtuve:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ node_modules/@angular/flex-layout/core/typings/media-trigger/media-trigger.d.ts:71:18 - error TS2314: Generic type 'ɵɵFactoryDef' requires 2 type argument(s). 71 static ɵfac: ɵngcc0.ɵɵFactoryDef<MediaTrigger>; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ node_modules/@angular/flex-layout/extended/typings/show-hide/show-hide.d.ts:18:18 - error TS2314: Generic type 'ɵɵFactoryDef' requires 2 type argument(s). 18 static ɵfac: ɵngcc0.ɵɵFactoryDef<ShowHideStyleBuilder>; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ node_modules/@angular/flex-layout/extended/typings/show-hide/show-hide.d.ts:49:18 - error TS2314: Generic type 'ɵɵFactoryDef' requires 2 type argument(s). 49 static ɵfac: ɵngcc0.ɵɵFactoryDef<ShowHideDirective>;El error es más largo que lo que escribí anteriormente, me tomé mi tiempo para tener una buena búsqueda de este problema, nada sobre la mesa, pero deshabilitar ivy, que no es una buena opción.
Afortunadamente, se lanzó Angular 9.1 y el problema se resolvió. Después de actualizar a 9.1 (ejecutando ng update @angular/cli @angular/core ), eliminé mis node_modules y los reinstalé nuevamente. Luego actualicé mi mecanografiado de 3.7.5 a 3.8.3 . Ahora el ngcc funciona bien y no tengo errores después de construir.
Para más información: Angular Versión 9.1