[英]Angular 7.2 - “component is part of the declarations of 2 modules” but it is not
Updating from Angular 5.2 to Angular 7.2, 从Angular 5.2更新到Angular 7.2,
I have a component that is only used only once in a module 我有一个仅在模块中使用一次的组件
but as I "ng build --prod" the project, I get this error 但是当我“ ng build --prod”项目时,出现此错误
ERROR in : Type GraphComponent in C:/myproject/src/app/widgets/graph/graph.component.ts is part of the declarations of 2 modules:
DashBoardModule in C:/myproject/src/app/pages/dashBoard/dashBoard.module.ts and
DashBoardModule in C:/myproject/src/app/pages/dashboard/dashBoard.module.ts
note that both modules are the same 请注意, 两个模块是相同的
I can't put my finger on what is wrong here, this is the component I import : 我不能指责这里出了什么问题,这是我导入的组件:
import { Component, OnInit, Input,OnChanges,SimpleChange } from '@angular/core';
@Component({
selector: 'my-graph',
templateUrl: './graph.component.html',
styleUrls: ['./graph.component.css'],
})
export class GraphComponent implements OnInit,OnChanges {
...
}
here is how I import the component in my module 这是我如何在模块中导入组件
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { ReactiveFormsModule, FormBuilder } from '@angular/forms';
import { DashBoardComponent } from './dashBoard.component';
import { DashBoardService } from './dashBoard.service';
import { DashBoardRoutingModule } from './dashBoard.routing';
import { LoadingOverlayModule } from '../../widgets/loadingOverlay/loadingOverlay.module';
import { DataTableModule } from '../../widgets/dataTable/dataTable.module';
import { ERFormModule } from '../../widgets/erform/erform.module';
import { GraphComponent } from '../../widgets/graph/graph.component';
import { PageTitleService } from '../../widgets/pageTitle/pageTitle.service';
@NgModule({
imports: [
CommonModule,
FormsModule,
ReactiveFormsModule,
DataTableModule,
ERFormModule,
DashBoardRoutingModule,
LoadingOverlayModule
],
declarations: [
DashBoardComponent,
GraphComponent
],
providers: [DashBoardService, FormBuilder,PageTitleService],
})
export class DashBoardModule {}
Here is DashBoardRoutingModule 这是DashBoardRoutingModule
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { DashBoardComponent } from './dashBoard.component';
import { AuthGuardService } from '../../auth/authGuard.service';
const dashboardRoutes: Routes = [
{
path: 'dashBoard',
component: DashBoardComponent,
pathMatch: 'full',
canActivate: [AuthGuardService],
}
];
@NgModule({
imports: [
RouterModule.forChild(dashboardRoutes)
],
exports: [
RouterModule
]
})
export class DashBoardRoutingModule {}
This should be (and was) working 这应该(并且正在)工作
is there some new consideration to take when importing a component in a module ? 在模块中导入组件时需要考虑一些新的考虑吗?
regards 问候
May be you have any unused or archived module in which DashboardComponent
is also declared. 可能是您有在其中还声明了DashboardComponent
任何未使用或已归档的模块。
Because I see there are two modules dashboard
and dashBoard
. 因为我看到有两个模块dashboard
和dashBoard
。 That is what the error says. 那就是错误的意思。
DashBoardModule in C:/myproject/src/app/pages/ dashBoard /dashBoard.module.ts and DashBoardModule in C:/myproject/src/app/pages/ dashboard /dashBoard.module.ts C:/ myproject / src / app / pages / dashBoard /dashBoard.module.ts中的DashBoardModule和C:/ myproject / src / app / pages / 仪表板 /dashBoard.module.ts中的DashBoardModule
dashBoard and dashboard are not the same, change them to have only one version (the name of the folder) 仪表板和仪表板不同,将它们更改为只有一个版本(文件夹的名称)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.