发生未处理的异常:意外值 'HeaderModule'。请添加@NgModule 注解
An unhandled exception occurred: Unexpected value 'HeaderModule'. Please add a @NgModule annotation
我有一个奇怪的问题。
我为我的项目制作了不同的库,每个库都是我的应用程序的一个小部件。所有小部件都相同 header,带有标题和一些按钮。
因此,我创建了另一个名为 header 的库,该库由每个小部件导入。
假设我有 widget1 和 widget2。
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { HeaderComponent } from './header.component';
@NgModule({
declarations: [HeaderComponent],
imports: [
CommonModule,
....
],
exports: [HeaderComponent]
})
export class HeaderModule { }
在 public-api.ts 中,我导出 Header 组件和 Header 模块,如下所示:
export * from './lib/header.component';
export * from './lib/header.module';
在我正确构建和安装 Header 库后,我将模块导入 widget 1 模块。
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { HeaderModule } from 'header';
@NgModule({
declarations: [Widget1Component],
imports: [
CommonModule,
HeaderModule
....
],
exports: [Widget1Component]
})
export class Widget1Module { }
一切顺利,widget1 import header 并且它的建筑没有显示错误。
当我以同样的方式在 widget2 中导入 header 时,我得到了这个错误。
ERROR: Unexpected value 'HeaderModule in .../dist/header/lib/header.module.d.ts' imported by the module 'Widget2 in .../angular-proj-lib/projects/widget1/src/lib/widget1.module.ts'. Please add a @NgModule annotation.
An unhandled exception occurred: Unexpected value 'HeaderModule in .../dist/header/lib/header.module.d.ts' imported by the module 'Widget2 in .../angular-proj-lib/projects/widget1/src/lib/widget1.module.ts'. Please add a @NgModule annotation.
See "...\AppData\Local\Temp\ng-IXlNtE\angular-errors.log" for further details.
我不明白,因为在我导入的所有其他小部件 (3,4,5...) HeaderModule 中没有问题!我检查 tsconfig.lib.json 和 package.json 的 peerDependencies 中的 widget2 和所有其他小部件之间是否存在差异,但没有什么奇怪的。
抱歉,如果我不能提供更多代码,但我对库不是很有信心。
我解决了检查所有小部件和 header 的 enableIvy 设置的问题。
全部必须有 'enableIvy': false;正确编译并正常工作。
我有一个奇怪的问题。 我为我的项目制作了不同的库,每个库都是我的应用程序的一个小部件。所有小部件都相同 header,带有标题和一些按钮。 因此,我创建了另一个名为 header 的库,该库由每个小部件导入。 假设我有 widget1 和 widget2。
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { HeaderComponent } from './header.component';
@NgModule({
declarations: [HeaderComponent],
imports: [
CommonModule,
....
],
exports: [HeaderComponent]
})
export class HeaderModule { }
在 public-api.ts 中,我导出 Header 组件和 Header 模块,如下所示:
export * from './lib/header.component';
export * from './lib/header.module';
在我正确构建和安装 Header 库后,我将模块导入 widget 1 模块。
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { HeaderModule } from 'header';
@NgModule({
declarations: [Widget1Component],
imports: [
CommonModule,
HeaderModule
....
],
exports: [Widget1Component]
})
export class Widget1Module { }
一切顺利,widget1 import header 并且它的建筑没有显示错误。
当我以同样的方式在 widget2 中导入 header 时,我得到了这个错误。
ERROR: Unexpected value 'HeaderModule in .../dist/header/lib/header.module.d.ts' imported by the module 'Widget2 in .../angular-proj-lib/projects/widget1/src/lib/widget1.module.ts'. Please add a @NgModule annotation.
An unhandled exception occurred: Unexpected value 'HeaderModule in .../dist/header/lib/header.module.d.ts' imported by the module 'Widget2 in .../angular-proj-lib/projects/widget1/src/lib/widget1.module.ts'. Please add a @NgModule annotation.
See "...\AppData\Local\Temp\ng-IXlNtE\angular-errors.log" for further details.
我不明白,因为在我导入的所有其他小部件 (3,4,5...) HeaderModule 中没有问题!我检查 tsconfig.lib.json 和 package.json 的 peerDependencies 中的 widget2 和所有其他小部件之间是否存在差异,但没有什么奇怪的。
抱歉,如果我不能提供更多代码,但我对库不是很有信心。
我解决了检查所有小部件和 header 的 enableIvy 设置的问题。
全部必须有 'enableIvy': false;正确编译并正常工作。