web-dev-qa-db-ja.com

このクラスは、SomeModule-> SomeComponentを介してコンシューマに表示されますが、トップレベルのライブラリエントリポイントからエクスポートされません

すべてのangularライブラリをangular 9.0.0を使用してng updateにアップグレードしました。それらをビルドしようとすると、以下のエラーが発生しました。

エラー:

サポートされないプライベートクラスSomeComponent。このクラスは、SomeModule-> SomeComponentを介してコンシューマに表示されますが、トップレベルのライブラリエントリポイントからエクスポートされません。

誰かがこのエラーを解決しましたか?

21
Aniruddha Das

このエラーは、ライブラリを作成していて、ライブラリモジュールのインポートに誤ったコンポーネントが含まれている場合にも発生します。

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 {

修正は、次のようにlib.moduleのComponentWithinComponentインポートを削除することです。

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