web-dev-qa-db-fra.com

Angular 4 Dépendance circulaire détectée

Mise à niveau de Angular Cli vers 1.3.1 J'ai quelques avertissements maintenant

WARNING in Circular dependency detected: src\app\work-sessions\work-session-list\work-session-list.routing.ts
-> src\app\work-sessions\work-session-list\index.ts -> src\app\work
-sessions\work-session-list\work-session-list.routing.ts

Chaque classe a une structure comme celle-ci:

enter image description here

work-session-list.routing.ts

import { Route } from '@angular/router';
import { WorkSessionListComponent } from './index';

export const WorkSessionRoutes: Route[] = [
  {
    path: '',
    component: WorkSessionListComponent
  },
];

Index.ts

export * from './work-session-list.component';
export * from './work-session-list.routing';

work-sessions-list.module.ts

import { WorkSessionListComponent } from './work-session-list.component';
import { WorkSessionRoutes } from './work-session-list.routing';
import { DataTableModule } from 'primeng/primeng';
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';

@NgModule( {
    imports: [RouterModule.forChild( WorkSessionRoutes ), CommonModule , FormsModule],

    declarations: [WorkSessionListComponent],
    exports: [WorkSessionListComponent]
} )

export class WorkSessionListModule { }

Que dans app.routing.ts

export const AppRoutes: Routes = [
      {
        path: 'workSession',
        loadChildren: './work-sessions/work-session-list/work-session-list.module#WorkSessionListModule'
      }
.
.
.

Et dans app.module

 @NgModule({
imports: [
CommonModule,
BrowserAnimationsModule,
FormsModule,
RouterModule.forRoot(AppRoutes),
 })
  ],
  declarations: [
    AppComponent
  ]
  bootstrap: [AppComponent]
})
export class AppModule {}

Comment puis-je résoudre ça? Cela fonctionne mais j'ai beaucoup d'avertissements

28
Alessandro

Comme l'indique l'avertissement, work-session-list.routing.ts dépend de index.ts:

import { WorkSessionListComponent } from './index';

Et index.ts dépend de work-session-list.routing.ts:

export * from './work-session-list.routing';

La première dépendance n'est pas nécessaire, car vous pouvez importer WorkSessionListComponent directement à partir de son fichier source:

import { WorkSessionListComponent } from './work-session-list.component';

Ce changement devrait résoudre le problème.

45
Ján Halaša