在多个角度5应用程序之间共享单个服务

Roh*_*ade 17 backbase angular angular5

我正在我的backbase应用程序中运行多个小角度5应用程序作为小部件.现在我正在尝试编写一个窗口级别的全局服务,并在所有应用程序中共享.

目前,我正在使服务静态并在每个小部件中使用并使用webpack创建特定于小部件的包.在这里,我能够使用rxjs运算符实现http缓存.

但我觉得这可能不是实施它的正确方法.有没有更好的方法在单个项目中跨多个角度5应用程序共享单件服务.

Xin*_*nan 5

以前,如果您想在多个Angular项目之间共享某些内容,那将非常棘手。您必须执行以下操作之一:

  • 创建一个包含共享代码的程序包,并将其发布到私有或公共NPM注册中心
  • 创建一个GIT子模块,并在两个项目中都引用它

但是现在我猜想Angular 6中引入的支持将最适合您的需求。

这里有一个简单的介绍文章:

Angular库系列-使用Angular CLI创建库

这类似于将共享程序包发布到NPM,但是Angular CLI(和ng-packagr)确实使它变得非常简单。


Thé*_*nza 3

根据定义,服务是单例的,因此如果您需要在项目内的多个应用程序之间使用某个服务,您真正需要做的就是在项目的根目录中定义它,并将其导入到每个 app.module 中。这里有点不正统的是使用多个应用程序的想法。也许您真正需要的是一个应用程序,其中包含解决方案所需的尽可能多的模块。但话又说回来,在不查看您的架构的情况下,我无法准确地说出任何内容,因此,如果您想分享您的代码,也许我可以看一下并提出建议。

干杯!