NPM包的不同版本依赖

时间:2017-04-18 05:50:51

标签: typescript npm ionic2 rxjs ionic-native

我对NPM包版本感到有点困惑

我有ionic2 app并且在我的packages.json中我依赖于rxjs@5.1.1我也有最新的离子本机,它依赖于rxjs@5.0.1。

现在问题是我写了一个扩展到Observable来添加新方法。它在我的服务上按预期工作。但是当我使用离子原生的服务时,它不起作用。

此方法可行(Get命令只返回Observable)

updateService.getCommands().ExtensionHere();

这不会(onChange将返回Observable)

BatteryStatus.onChange().ExtensionHere();

这是一个愚蠢的问题,但我有点陷入困境,因为我认为NPM会为所有人使用最新版本。

所以我的问题是为什么它以这种方式运作? 这有什么方法可以说使用相同的包版本吗?

1 个答案:

答案 0 :(得分:1)

  

这是一个愚蠢的问题,但我有点陷入困境,因为我认为NPM会为所有人使用最新版本。

没有。如果请求,每个模块都有自己的版本。

  

这有什么方法可以说使用相同的包版本?

如果这些库将rxjs作为 peerDependency ,它将只会以这种方式工作。使用peerDependencies ,您可以决定确切的版本。但这需要ionic-native来更改其代码。

QuickFix:

手动要求两个版本添加您的扩展程序,require('../node_modules/your/node_modules/rxjs')他们的相同。