此 class 通过 SomeModule -> SomeComponent 对消费者可见,但不会从顶级库入口点导出
This class is visible to consumers via SomeModule -> SomeComponent, but is not exported from the top-level library entrypoint
我使用 ng update
将所有 angular 库升级到 angular 9.0.0
,当我尝试构建它们时出现以下错误。
错误:
Unsupported private class SomeComponent. This class is visible to consumers via SomeModule -> SomeComponent, but is not exported from the top-level library entrypoint.
有人解决了这个错误吗?
如果任何组件在 NgModule
中导出但未包含在您的 public_api.ts
中,则会发生此错误,Angular 9
现在将引发错误。
这个错误不是在 Angular 8
中出现的,但是在升级到 Angular 9
之后它开始显示。
如果您在 NgModule
中导出任何 service
、module
或 component
等,请确保将它们包含在 public_api.ts
中,否则 angular 9
现在会抛出错误。
修复:将您的组件添加到 public_api.ts
export * from './lib/components/some-me/some-me.component';
我今天遇到了同样的问题。
我的先决条件:
- 我从事 Angular 11 库类型的项目;
- 我添加了一个新指令;
- 我在尝试将我的指令添加到模块导出时遇到了上述错误。
修复:
- 我已将文件导出添加到 index.ts 文件:
export * from './just/a/relative/path/to/the/directive/{{myDirectiveFile}}';
这个错误发生在我身上,因为我使用了 default
关键字来导出我的组件:
@Component({
selector: 'lib-form',
templateUrl: './form.component.html',
styleUrls: ['./form.component.scss'],
})
export default class FormComponent implements OnInit {
// ...
}
我的 Linter 建议使用此关键字,并允许将导入写为 import FormComponent from './form.component';
而不是 import { FormComponent } from './form.component';
然而,这似乎并不适用于 public-api.ts
。我的解决方案是删除 default
关键字并更改所有导入。
我使用 ng update
将所有 angular 库升级到 angular 9.0.0
,当我尝试构建它们时出现以下错误。
错误:
Unsupported private class SomeComponent. This class is visible to consumers via SomeModule -> SomeComponent, but is not exported from the top-level library entrypoint.
有人解决了这个错误吗?
如果任何组件在 NgModule
中导出但未包含在您的 public_api.ts
中,则会发生此错误,Angular 9
现在将引发错误。
这个错误不是在 Angular 8
中出现的,但是在升级到 Angular 9
之后它开始显示。
如果您在 NgModule
中导出任何 service
、module
或 component
等,请确保将它们包含在 public_api.ts
中,否则 angular 9
现在会抛出错误。
修复:将您的组件添加到 public_api.ts
export * from './lib/components/some-me/some-me.component';
我今天遇到了同样的问题。
我的先决条件:
- 我从事 Angular 11 库类型的项目;
- 我添加了一个新指令;
- 我在尝试将我的指令添加到模块导出时遇到了上述错误。
修复:
- 我已将文件导出添加到 index.ts 文件:
export * from './just/a/relative/path/to/the/directive/{{myDirectiveFile}}';
这个错误发生在我身上,因为我使用了 default
关键字来导出我的组件:
@Component({
selector: 'lib-form',
templateUrl: './form.component.html',
styleUrls: ['./form.component.scss'],
})
export default class FormComponent implements OnInit {
// ...
}
我的 Linter 建议使用此关键字,并允许将导入写为 import FormComponent from './form.component';
而不是 import { FormComponent } from './form.component';
然而,这似乎并不适用于 public-api.ts
。我的解决方案是删除 default
关键字并更改所有导入。