Actualicé toda mi biblioteca angular a angular 9.0.0
usando ng update
y cuando trato de construirlos obtuve el siguiente error.
Error:
Clase privada no admitida SomeComponent. Esta clase es visible para los consumidores a través de SomeModule -> SomeComponent, pero no se exporta desde el punto de entrada de la biblioteca de nivel superior.
Alguien soluciono este error?
Este error me sucedió porque usé la palabra clave default
para exportar mi componente:
@Component({ selector: 'lib-form', templateUrl: './form.component.html', styleUrls: ['./form.component.scss'], }) export default class FormComponent implements OnInit { // ... }
El uso de esta palabra clave fue sugerido por mi Linter y permite escribir importaciones como import FormComponent from './form.component';
en lugar de import { FormComponent } from './form.component';
Sin embargo, esto no parece funcionar bien public-api.ts
. La solución para mí fue eliminar la palabra clave default
y cambiar todas las importaciones.
Estaba luchando con el mismo problema hoy.
Mis requisitos previos:
Reparar:
export * from './just/a/relative/path/to/the/directive/{{myDirectiveFile}}';
Este error ocurre si algún componente se exporta en NgModule
y no se incluye en su public_api.ts
, Angular 9
arrojará un error ahora.
Este error no aparecía en Angular 8
, pero después de actualizar a Angular 9
comenzó a mostrarse.
Si exportó algún service
, module
o component
, etc. en NgModule
, asegúrese de incluirlos en public_api.ts
o, de lo contrario, angular 9
arrojará un error ahora.
Solución: agregue su componente a public_api.ts
export * from './lib/components/some-me/some-me.component';