Angular 9 Ivy - Le type générique 'actoryFactoryDef' nécessite 2 argument (s) de type


17

On dirait que Angular Ivy n'est pas encore prêt. J'essaye de construire mon projet en utilisant ivy qui est l'idée principale d'Angular 9. Beaucoup de bibliothèques ne sont pas compatibles avec cette fonctionnalité, une de ces bibliothèques l'est @angular/flex-layout. Les travailleurs des matériaux et des services ont également le même problème.

Après avoir utilisé un ng build --prod --aot -c=productionscript pour construire mon projet, j'ai eu:

                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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>;

L'erreur plus longue que ce que j'ai écrit ci-dessus, j'ai pris mon temps pour avoir une bonne recherche pour ce problème, rien sur la table mais désactiver le lierre qui n'est pas une bonne option.

Réponses:


13

Heureusement, Angular 9.1 a été publié et le problème résolu. Après la mise à niveau vers 9.1, j'ai supprimé mes node_modules et je l'ai réinstallé. J'ai ensuite mis à niveau mon dactylographie de 3.7.5à 3.8.3. Maintenant, le ngcc fonctionne bien et je n'ai aucune erreur après la construction.

Pour plus d'informations: Angular Version 9.1


quelle est votre commande postinstall complète? est-ce seulement "postinstall":"ngcc"??
harishr

@harishr Oui, il s'agit de "ngcc". Si vous effectuez une mise à niveau, n'utilisez pas de point d'entrée. Restez avec ngcc
Yazan Mehrez

Je suis toujours confronté au problème ... a dû revenir à 9.0.5 pour résoudre le problème
harishr

1
oui, je l'ai fait ... j'ai mis à jour le tapuscrit n tous les autres packages. supprimé node_modules et réinstallé tout, mais obtenant toujours exactement la même erreur que vous avez mentionnée dans votre question. Dois-je vider le cache global?
harishr

1
Oui, la suppression de node_modules et a npm cache verifyfait l'affaire pour moi
Mattijs
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.