gpt4 book ai didi

另一个应用程序使用的 Angular 库产生错误 : Function calls are not supported in decorators but 'LoggerModule' was called

转载 作者:太空狗 更新时间:2023-10-29 17:40:10 26 4
gpt4 key购买 nike

我编写了一个带有一些服务的 Angular 库,以便在不同的 Angular 应用程序中使用它。在没有 --prod 的情况下一切正常,因此在 Angular 应用程序中没有 AOT 编译。

使用 ng-packagr 以及 cli 以及一些不同的 yeoman 生成器生成库每次都会产生相同的错误。此外,我尝试了不同的 ng 版本(5.x.x、6.x.x 和 7.x.x)。但是在所有情况下,当我在应用程序的 app.module 中调用 LoggerModule.forRoot() 时,每次(使用 AOT)都会出现相同的错误:

ERROR in Error during template compile of 'AppModule' 
Function calls are not supported in decorators but 'LoggerModule' was called.

我读了很多关于这个主题的文章,在 tsconfig.xml 中尝试了不同的 angularCompilerOptions。还有其他想法吗?该模块在没有 AOT 的情况下工作正常(但这不是我们的选择)...

库的 NgModule:

@NgModule({
declarations: [],
imports: [],
providers: []
})
export class LoggerModule {

static forRoot(): ModuleWithProviders {
return {
ngModule: LoggerModule,
providers: [LoggerService]
}
}
}

应用程序的 NgModule:

@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
LoggerModule.forRoot()
],
providers: [],
bootstrap: [AppComponent],
entryComponents: [AppComponent]
})
export class AppModule {
}

最佳答案

在模块定义之外声明您的 forRoot:

import { ModuleWithProviders } from ‘@angular/core’;
export const forRoot: ModuleWithProviders = LoggerModule.forRoot();

@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
forRoot
],
providers: [],
bootstrap: [AppComponent],
entryComponents: [AppComponent]
})
export class AppModule {
}

关于另一个应用程序使用的 Angular 库产生错误 : Function calls are not supported in decorators but 'LoggerModule' was called,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52918824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com