中的Angular 2错误无法确定类ManagerService i的模块
当尝试使用ng build-prod进行构建时,我遇到了以下错误中的Angular 2错误无法确定类ManagerService i的模块,angular,angular2-services,angular2-modules,Angular,Angular2 Services,Angular2 Modules,当尝试使用ng build-prod进行构建时,我遇到了以下错误 ERROR in Cannot determine the module for class ManagersService in C:/Test/src/app/shared/common/managers/managers.service.ts! Add ManagersService to the NgModule to fix it. 我有AppModule、AppCommonModule和CustomModuleA。M
ERROR in Cannot determine the module for class ManagersService in C:/Test/src/app/shared/common/managers/managers.service.ts! Add ManagersService to the NgModule to fix it.
我有AppModule、AppCommonModule和CustomModuleA。ManagerService位于AppCommonModule中。CustomModuleA有一个使用AppCommonModule的ManagerComponent(此组件使用ManagerService)的路由。AppCommonModule同时在AppModule和CustomModuleA中导入
@NgModule({
imports: [
CommonModule,
FormsModule,
HttpModule,
ModalModule,
TabsModule,
TooltipModule,
AppCommonModule,
],
declarations: [
CompA
],
providers: [
SomeOtherService
]
})
export class CustomModuleA { }
我已将该服务添加到AppCommonModule提供程序中。我不明白我在这里错过了什么
注意:使用ng serve,这就像一个符咒。没有错误
这是属于AppCommonModule的ManagerComponent
@Component({
templateUrl: './managers.component.html',
providers: [ManagersService]
})
export class ManagersComponent extends AppComponentBase {
@ViewChild('createOrEditManagerModal') createOrEditManagerModal: CreateOrEditManagerModalComponent;
constructor(public managersService: ManagersService) {
}
@NgModule({
imports: [
FormsModule,
ReactiveFormsModule
],
declarations: [
ManagersComponent
],
providers: [
ManagersService,
],
exports: [
ManagersComponent,
]
})
这是AppCommonModule
@Component({
templateUrl: './managers.component.html',
providers: [ManagersService]
})
export class ManagersComponent extends AppComponentBase {
@ViewChild('createOrEditManagerModal') createOrEditManagerModal: CreateOrEditManagerModalComponent;
constructor(public managersService: ManagersService) {
}
@NgModule({
imports: [
FormsModule,
ReactiveFormsModule
],
declarations: [
ManagersComponent
],
providers: [
ManagersService,
],
exports: [
ManagersComponent,
]
})
这是CustomModuleA
@NgModule({
imports: [
CommonModule,
FormsModule,
HttpModule,
ModalModule,
TabsModule,
TooltipModule,
AppCommonModule,
],
declarations: [
CompA
],
providers: [
SomeOtherService
]
})
export class CustomModuleA { }
这是CustomAModuleRouting
NgModule({
imports: [
RouterModule.forChild([
{
path: '',
children: [
{
path: 'compA',
component: CompA,
},
{
path: 'managers',
component: ManagersComponent,
},
]
}
])
],
exports: [
RouterModule
]
})
我没有在AppCommonModule中看到您的导入,但我猜您有两个包含ManagerService的文件,并且只导入其中一个(不是src/app/shared/common/managers/managers.service.ts)。删除有问题的dupe文件将解决您的问题
--prod开关触发AOT编译,AOT编译将尝试编译找到的每个.ts文件。ng serve使用JIT编译,这就是为什么问题不会在那里表现出来。在最初的问题中,一点代码片段会很有帮助。谢谢