web-dev-qa-db-fra.com

Cette classe est visible pour les consommateurs via SomeModule -> SomeComponent, mais n'est pas exportée à partir du point d'entrée de la bibliothèque de niveau supérieur

J'ai mis à niveau toute ma bibliothèque angular vers angular 9.0.0 en utilisant ng update et quand j'essaye de les construire, j'ai une erreur ci-dessous.

Erreur:

Classe privée non prise en charge SomeComponent. Cette classe est visible pour les consommateurs via SomeModule -> SomeComponent, mais n'est pas exportée depuis le point d'entrée de la bibliothèque de niveau supérieur.

Quelqu'un a résolu cette erreur?

21
Aniruddha Das

Cette erreur se produit également lorsque vous créez une bibliothèque et que vous incluez une erreur de composant dans les importations du module de bibliothèque.

import { NgModule } from '@angular/core';
import { LibComponent } from './lib.component';
import { ComponentWithinComponent } from './component-within/component-within.component'

@NgModule({
  declarations: [LibComponent, ComponentWithinComponent],
  imports: [
    ComponentWithinComponent
  ],
  exports: [LibComponent, ComponentWithinComponent]
})
export class LibModule { }
ng build lib 
//results in
Error NG6002: Appears in the NgModule.imports of LibModule, but could not be resolved to an NgModule class.
Is it missing an @NgModule annotation?
8 export class ComponentWithinComponent implements OnInit {

Le correctif consiste à supprimer l'importation ComponentWithinComponent dans le module lib.module comme ceci:

@NgModule({
  declarations: [LibComponent, ComponentWithinComponent],
  imports: [
    // don't import here
  ],
  exports: [LibComponent, ComponentWithinComponent]
})
export class LibModule { }
0
John Peters