首页 > 解决方案 > 使用 enableIvy: false 编译 Angular 9 库会出现错误

问题描述

我正在用 Angular 9/ng-packagr 编译一个库,它可以工作。但是,如果我更改angularCompilerOptions并禁用 Ivy "enableIvy": false,则会收到以下错误:

错误:由模块'MyModule in my-project/projects/my-lib/src/app/ 导入的意外值'OtherLibModule in .../node_modules/other-lib-module/other-lib-module.d.ts'我的.module.ts'。请添加 @NgModule 注释。

OtherLibModule是我创建的另一个库,使用 Angular 9 和"enableIvy": false.

标签: angular

解决方案


问题是public-api.tsinotherlib正在导出文件夹,而不是桶文件(索引)。所以我改变了

export * from "./lib";

export * from "./lib/index";

public-api.ts并且它起作用了。问题是生成otherlib-metadata.json的未包含所有必需的元数据。

关于这个问题还有一个报告的问题https://github.com/ng-packagr/ng-packagr/issues/355。我不敢相信两年多后它还没有解决。


推荐阅读