【问题标题】:Angular 9 Ivy - Generic type 'ɵɵFactoryDef' requires 2 type argument(s)Angular 9 Ivy - 通用类型 'ɵɵFactoryDe​​f' 需要 2 个类型参数
【发布时间】:2020-07-08 21:48:06
【问题描述】:

看起来 Angular Ivy 还没有准备好。我正在尝试使用 Angular 9 的主要思想 ivy 构建我的项目。许多库与此功能不兼容,其中一个库是 @angular/flex-layout。 Material 和 service-worker 也有同样的问题。

使用ng build --prod --aot -c=production 脚本构建我的项目后,我得到了:

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

错误比我上面写的要长,我花时间好好搜索这个问题,除了禁用常春藤,这不是一个好的选择。

【问题讨论】:

    标签: angular ivy angular9


    【解决方案1】:

    幸运的是,Angular 9.1 已经发布并且问题解决了。升级到 9.1 后(通过运行 ng update @angular/cli @angular/core)我删除了我的 node_modules 并重新安装它。然后我将我的打字稿从3.7.5 升级到3.8.3。现在 ngcc 工作正常,构建后我没有错误。

    欲了解更多信息:Angular Version 9.1

    【讨论】:

    • 您的完整安装后命令是什么?是不是只有"postinstall":"ngcc"??
    • @harishr 是的,它是“ngcc”,如果您正在升级,请不要使用入口点。留在ngcc
    • 我仍然面临这个问题...必须恢复到 9.0.5 才能解决问题
    • 是的,我做到了...我更新了所有其他软件包的打字稿。删除了 node_modules 并重新安装了所有内容,但仍然得到与您在问题中提到的完全相同的错误。我需要清除全局缓存吗?
    • 是的,删除 node_modules 和 npm cache verify 对我有用
    猜你喜欢
    • 2017-12-07
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 2020-10-14
    • 2020-04-16
    • 2020-11-19
    • 1970-01-01
    相关资源
    最近更新 更多