【问题标题】:How to make vsCode be aware of deep dependency import for the autocompletion?如何让 vsCode 知道自动完成的深度依赖导入?
【发布时间】:2021-04-30 09:29:57
【问题描述】:

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

自动补全确实出现了,但它未能导入正确的元素。

【问题讨论】:

    标签: angular visual-studio-code


    【解决方案1】:

    您需要从库中导出组件、模块、服务等。
    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'
    

    【讨论】:

    • 它不起作用,这向我显示了导入建议,但它指向错误的文件并且无法导入它。
    猜你喜欢
    • 2020-07-29
    • 2021-02-12
    • 2021-11-14
    • 1970-01-01
    • 2017-11-24
    • 2021-06-05
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    相关资源
    最近更新 更多