Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

This class is visible to consumers via SomeModule -> SomeComponent, but is not exported from the top-level library entrypoint

I upgraded all my angular library to angular 9.0.0 using ng update and when I try to build them I got below error.

Error:

Unsupported private class SomeComponent. This class is visible to consumers via SomeModule -> SomeComponent, but is not exported from the top-level library entrypoint.

Anyone solved this error?

like image 283
Aniruddha Das Avatar asked Feb 07 '20 22:02

Aniruddha Das


2 Answers

This error happens if any component is exported in NgModuleand not included in your public_api.ts, Angular 9 will throw an error now.

This error was not coming in Angular 8 but after upgrading to Angular 9 it started showing.

If you exported any service, module or component, etc in NgModule make sure to include them in public_api.ts or else angular 9 will throw error now.

Fix: add your component to the public_api.ts

export * from './lib/components/some-me/some-me.component'; 
like image 93
Aniruddha Das Avatar answered Sep 22 '22 03:09

Aniruddha Das


I was struggling with the same issue today.

My prerequisites:

  • I work on an Angular 11 library type project;
  • I have added a new directive;
  • I got an error as above when tried to add my directive to module exports.

Fix:

  • I have added file export to index.ts file:

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

like image 20
Viktoriia Shchutska Avatar answered Sep 19 '22 03:09

Viktoriia Shchutska