问题描述
我创建了多个 Angular 库,让我可以使用一堆组件更快地创建网站,例如:sidenav、卡片、...
我创建了一个“超级库”来导入所有这些,因此我可以使用 npm i myWebsiteBundle
一次性下载所有依赖项。
我已在我的 ng-package.json
文件中将所有此类插件列入白名单
"whitelistednonPeerDependencies": [
"@myName/sidenav-conponent","@myName/card-component",]
但是现在,当我想在例如导入它时。 app.module.ts
vsCode 导入自动完成不会找到该模块。
import { SidenavComponentModule } from '@myName/card-component' // <-- Have to be typed manually
imports: [
SidenavComponentModule // <-- No suggestion
]
我知道,建议单独下载每个包,但就我而言,它必须像这样实现
是否有人已经遇到过同样的问题并找到了解决方案?
编辑
然后我尝试导出 public-api.ts
文件中的库
export { SidenavComponentModule } from '@myName/card-component'
自动完成确实出现了,但它未能导入正确的元素。
解决方法
您需要从库中导出组件、模块、服务等。
my-lib.ts
// Public API Surface
export * from './lib/my-lib.service';
export * from './lib/my-lib.component';
export * from './lib/my-lib.module';
// AllowedNonPeerDependencies
export { SidenavComponentModule } from '@myName/card-component'