简体   繁体   English

Angular 7.2-“组件是2个模块的声明的一部分”,但不是

[英]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 . 因为我看到有两个模块dashboarddashBoard 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM