此类通过 SomeModule -> SomeComponent 对消费者可见,但不会从顶级库入口点导出

Ani*_*Das 55 angular angular-library angular9

我将所有 angular 库升级为angular 9.0.0using ng update,当我尝试构建它们时,出现以下错误。

错误:

不受支持的私有类 SomeComponent。此类通过 SomeModule -> SomeComponent 对消费者可见,但不会从顶级库入口点导出。

有人解决了这个错误吗?

Ani*_*Das 119

如果任何组件被导出NgModule但未包含在您的 中public_api.tsAngular 9则会发生此错误,现在将引发错误。

这个错误没有出现,Angular 8但升级到Angular 9它后开始显示。

如果您导出了任何servicemodulecomponent等,请NgModule确保将它们包含在其中,public_api.ts否则angular 9现在会抛出错误。

修复:将您的组件添加到 public_api.ts

export * from './lib/components/some-me/some-me.component';
Run Code Online (Sandbox Code Playgroud)

  • 导出模块不足以使用内部导出的组件? (8认同)
  • 如果您不使用 public_api.ts,那么编辑 index.ts 也同样有效。 (6认同)
  • 我要回到 ReactJS (3认同)
  • @NandaKishoreAllu 不,实际上您需要将它们添加到 public_api 中才能使它们可用。 (2认同)
  • 有人可以解释这种情况吗:我的组件在一个模块中,并且该模块正在 public-api.ts 中导出,但是当我尝试构建时,我收到了上述消息。任何猜测为什么会发生这种情况? (2认同)
  • 这对急切加载和延迟加载的模块都有影响吗?我假设只是渴望,否则所有内部组件都应该在 public-api 中导出,因为它们将在应用程序的某些部分中传递导入,不是吗? (2认同)

小智 12

今天我也遇到了同样的问题。

我的先决条件:

  • 我从事 Angular 11 库类型项目;
  • 我添加了一个新指令;
  • 当尝试将指令添加到模块导出时,我收到了如上所述的错误。

使固定:

  • 我已将文件导出添加到index.ts 文件:

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