如何让 vsCode 意识到自动补全的深度依赖导入? 编辑

问题描述

我创建了多个 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'