- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
尝试使用 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。 ManagersService 在 AppCommonModule 中。 CustomModuleA 有一个路由使用了 AppCommonModule 的 ManagersComponent(这个组件使用了 ManagersService)。 AppCommonModule 在 AppModule 和 CustomModuleA 中都被导入
我已将服务添加到 AppCommonModule 提供程序。我不明白我在这里错过了什么。
注意:使用 ng serve 这就像一个魅力。没有错误。
这是属于 AppCommonModule 的 ManagersComponent
@Component({
templateUrl: './managers.component.html',
providers: [ManagersService]
})
export class ManagersComponent extends AppComponentBase {
@ViewChild('createOrEditManagerModal') createOrEditManagerModal: CreateOrEditManagerModalComponent;
constructor(public managersService: ManagersService) {
}
这是 AppCommonModule
@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 中看到您的导入,但我猜您有两个包含 ManagersService 的文件并且只导入其中一个(不是 src/app/shared/common/managers/managers.service.ts)。删除有问题的重复文件将解决您的问题。
--prod 开关触发 AOT 编译,它将尝试编译它找到的每个 .ts 文件。 ng serve 使用 JIT 编译,这就是问题没有在那里出现的原因。
关于无法确定类 ManagersService 的模块中的 Angular 2 错误 i,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44063091/
尝试使用 ng build -prod 构建时出现以下错误 ERROR in Cannot determine the module for class ManagersService in C:/T
我是一名优秀的程序员,十分优秀!