首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建一个从第三方库提供服务的Angular共享库和模块是一种好的做法吗?

创建一个从第三方库提供服务的Angular共享库和模块是一种好的做法吗?
EN

Stack Overflow用户
提问于 2021-01-29 02:30:56
回答 1查看 167关注 0票数 0

我正在做一个Angular项目,它将有两个应用程序和一个共享服务模块,可能还有共享功能模块。定义一个“核心”模块来导出应用程序和功能模块所需的CommonModule和FormsModule以及其他公共组件、管道和指令似乎是一种常见的做法。Core模块导出它们,以使它们都可以从一个"Core“模块中获得。我想知道,对于来自第三方库的服务/提供者(例如日志服务),是否也有意义。似乎我可以在我的核心模块中编写一个forRoot()函数,它返回我的应用程序所依赖的第三方库中的所有提供者,以此来“泡泡它们”。然后,每个应用程序模块只需导入CoreModule.forRoot(),作为将一组公共依赖项(组件、管道、指令和服务)导入应用程序的一种方式。可以配置一些第三方库,因此CoreModule.forRoot()可以接受配置对象来配置各种第三方模块。

EN

回答 1

Stack Overflow用户

发布于 2021-02-09 07:44:42

我尝试了一下,发现它不允许从你自己的库中的第三方库中“冒泡”提供者,然后将你自己的库导入到应用程序中。我尝试的方法是在共享库中编写一个forRoot()函数,该函数依次调用LoggerModule.forRoot():

代码语言:javascript
复制
static forRoot(config: LoggerConfig): any[] {
  return [
    MyCoreModule,
    LoggerModule.forRoot(config),
  ];
}

编译器报告一个错误,指出无法静态计算forRoot()函数。所以..。我想我最初的问题的答案是:不,你不应该试图从第三方库中冒泡提供商。相反,应用程序模块应直接导入第三方模块。在我的例子中,这是:

代码语言:javascript
复制
  imports: [
    LoggerModule.forRoot({
      level: NgxLoggerLevel.DEBUG,
    }),
  ]

最初的目标是将第三方库和模块隐藏在一个“核心”库中,以创建一种“平台”库。但这也有它的缺点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65943178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档