随着 Angular 10 的发布,我将用于构建库 + 演示应用程序的 Angular 版本更新到版本 10。
一般来说,这一切进展顺利,并且该库仍然与 Angular 的早期版本兼容,但此版本的情况似乎并非如此(针对 Angular 9 的先前版本构建与 Angular 8 运行良好)。
输出打字稿定义文件包括:
import * as ɵngcc0 from '@angular/core';
...
static ɵfac: ɵngcc0.ɵɵFactoryDef<QrCodeComponent, never>;
static ɵcmp: ɵngcc0.ɵɵComponentDefWithMeta<QrCodeComponent, "qr-code", never, { "value": "value"; "size": "size"; "errorCorrectionLevel": "errorCorrectionLevel"; }, {}, never, never>;
在 Angular 8 项目中使用时会导致这样的错误:
ERROR in node_modules/ng-qrcode/lib/qr-code.component.d.ts(7,25): error TS2694: Namespace '"/ngqrcode-ng8-test/node_modules/@angular/core/core"' has no exported member 'ɵɵFactoryDef'.
node_modules/ng-qrcode/lib/qr-code.component.d.ts(8,18): error TS2314: Generic type 'ɵɵComponentDefWithMeta' requires 6 type argument(s).
node_modules/ng-qrcode/lib/qr-code.directive.d.ts(13,25): error TS2694: Namespace '"/ngqrcode-ng8-test/node_modules/@angular/core/core"' has no exported member 'ɵɵFactoryDef'.
我使用以下命令新创建了测试 Angular 8 项目:
npx @angular/cli@^8 new ngqrcode-ng8-test
您可以在此处查看我对此更改的 WIP 拉取请求:https://github.com/mnahkies/ng-qrcode/pull/8 https://github.com/mnahkies/ng-qrcode/pull/8
注意:我的编译器选项中已经设置了enableIvy false:
"angularCompilerOptions": {
"enableIvy": false
}
有没有办法使用 Angular v10 构建一个保持与 Angular v8 兼容性的库?