【问题标题】:How to use a library of an angular application within a library如何在库中使用 Angular 应用程序库
【发布时间】:2021-05-14 12:42:30
【问题描述】:

我有一个带有已定义服务的 Angular 应用程序。而且我还定义了几个库。我不能做的是在我的一个库中使用应用程序服务。

    • 应用程序
      • 服务
        • myappservice.service.ts
  • 项目
    • mylib
          • mylibservice.service.ts

当我尝试将“myappservice”导入“mylibservice”时,出现以下错误:

... is not under 'rootDir' .... 'rootDir' is expected to contain all source files.

mylibservice.service.ts

import { MyAppService} from 'src/app/services/myappservice.service';

@Injectable({
  providedIn: "root",
})

export class ObjectTypesService {
...
constructor(
    private myappservice: MyAppService
  ) {
...

有人可以帮助我在我的图书馆中使用这项服务吗?

【问题讨论】:

    标签: javascript angular typescript frontend


    【解决方案1】:

    您可以构建您的 lib 模块,将其发布到 npm 并通过 npm 添加到 package.json。

    您可以构建您的 lib 模块,而不是将其发布到 npm,您可以在 package.json 中导入 .tgz 文件。

    您可以使用一些已经解决此问题的 monorepo,例如 https://nx.dev/ 。在此解决方案中,您将所有库和应用程序存储在同一个 git 存储库中,您可以将库导入应用程序,而无需在每次更改后将其发布到 npm。这有不利的一面,因为您必须每次都构建应用程序和所有库。

    在这个 monorepo 中也可以将 lib 构建为 npm 包。如果您需要在 monorepo 之外的其他应用程序中或作为 npm 依赖项的 monorepo 应用程序中使用它。

    【讨论】:

      猜你喜欢
      • 2016-05-12
      • 2019-07-20
      • 2019-04-30
      • 2016-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-04
      相关资源
      最近更新 更多