Angular 10 个库和 IVY/ngcc 兼容性

Angular 10 Libraries and IVY/ngcc Compatibility

我有一个需要通过 npm 分发的库。 Angular 10 的建议似乎仍然是这样的库应该在禁用 IVY 的情况下编译,但是 Angular CLI 将确保该库仍然与启用了 IVY 的应用程序兼容。

对于我的库,如果我使用 IVY 构建它,它会按预期工作。然而,如果我在构建时禁用 IVY,当我导入库时,我会收到以下错误:

ERROR in node_modules/@me/my-module/lib/my-module.module.d.ts:1:22 - error NG6002: Appears in the NgModule.imports of AppModule, but could not be resolved to an NgModule class.

This likely means that the library (@me/my-module) which declares MeMYModule has not been processed correctly by ngcc, or is not compatible with Angular Ivy. Check if a newer version of the library is available, and update if so. Also consider checking with the library's authors to see if the library is expected to be compatible with Ivy.

我错过了什么吗?我发现了很多类似的问题,但 none 的解决方案似乎有效。

几天前我遇到过类似的问题。我通过在 package.json 文件中添加以下脚本解决了这个问题。

"scripts": {
    "postinstall": "ngcc"
  }