【发布时间】:2016-04-07 23:44:07
【问题描述】:
我需要创建一个可以在不同的 angular2 应用程序之间共享的服务。该服务将访问其余 api 并包装其数据,以便 Angular 应用程序可以使用它。如果我使用 angular2 http 服务,那么我需要将整个 angular2 作为服务的依赖项。
目前我希望将服务层作为一个单独的 npm 包,以便我可以在多个项目之间重用它。
有没有更好的方法来实现可重用性,而不是将整个angular2库安装到服务包中?
【问题讨论】:
-
因此该服务具有
angularnpm 依赖项,该依赖项与父包(项目)共享。那有什么问题?显然,不应该将服务编译为 dist 以便能够使用与项目相同的angular。由于该服务不打算在非 Angular 环境中使用,它应该就这么简单。 -
@estus 该服务是另一个包。因此,如果可能的话,我希望能够只使用 http,而不是整个 angular2。当然我可以安装整个 ng2,因为项目也是 ng2,所以它只会安装一次。
-
但是服务是由应用托管的,对吧?然后注入
Http将来自应用程序的注入器。服务包甚至不必具有 npmangular依赖项(即使它具有,服务包中的import ... from 'angular2/http'可能会解析为与项目包中相同的angular2/http,这就是 npm 包的工作方式)。这个问题在目前的状态下是模糊的,缺乏实际的代码,但看起来这里根本没有问题。