86 votes

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 premier niveau.

J'ai mis à jour toute ma bibliothèque angulaire pour angular 9.0.0 en utilisant ng update et quand j'essaie de les construire, j'obtiens l'erreur suivante.

Erreur :

Classe privée non supportée 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 premier niveau.

Quelqu'un a résolu cette erreur ?

195voto

Aniruddha Das Points 34

Cette erreur se produit si un composant est exporté dans le format NgModule et ne sont pas inclus dans votre public_api.ts , angular 9 va par erreur maintenant.

Cette erreur n'apparaissait pas dans angular 8 mais après la mise à niveau vers angular 9 ça a commencé à se voir.

Si vous avez exporté des service , module o component etc. NgModule assurez-vous de les inclure dans public_api.ts ou bien angular 9 lancera une erreur maintenant.

Correction : ajoutez votre composant à la public_api.ts

export * from './lib/components/some-me/some-me.component';

5voto

J'étais aux prises avec le même problème aujourd'hui.

Mes conditions préalables :

  • Je travaille sur un projet de type bibliothèque Angular 11 ;
  • J'ai ajouté une nouvelle directive ;
  • J'ai obtenu une erreur comme ci-dessus lorsque j'ai essayé d'ajouter ma directive aux exportations du module.

Fixe :

  • J'ai ajouté l'exportation de fichiers au fichier index.ts :

export * from './just/a/relative/path/to/the/directive/{{myDirectiveFile}}';

0voto

John Peters Points 3662

Cette erreur se produit également lorsque vous créez une bibliothèque et que vous incluez un composant de manière incorrecte dans les importations du module de la 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 {

La solution consiste à supprimer l'importation de ComponentWithinComponent dans le module lib.comme ceci :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X