Typescript NPM包的不同版本依赖关系

Typescript NPM包的不同版本依赖关系,typescript,npm,ionic2,rxjs,ionic-native,Typescript,Npm,Ionic2,Rxjs,Ionic Native,我对NPM软件包版本有点困惑 我有ionic2应用程序,在我的packages.json中我依赖于rxjs@5.1.1此外,我有最新的离子本机的依赖性rxjs@5.0.1. 现在的问题是,我编写了对Observable的扩展来添加新方法。它在我的服务上按预期工作。但当我使用来自ionic native的服务时,它不起作用 此方法将起作用(Get命令仅返回可观察) 这不会(onChange将返回可观察) 这是一个愚蠢的问题,但我有点陷入困境,因为我认为NPM将使用最新版本的所有 所以我的问题是为什

我对NPM软件包版本有点困惑

我有ionic2应用程序,在我的packages.json中我依赖于rxjs@5.1.1此外,我有最新的离子本机的依赖性rxjs@5.0.1.

现在的问题是,我编写了对Observable的扩展来添加新方法。它在我的服务上按预期工作。但当我使用来自ionic native的服务时,它不起作用

此方法将起作用(Get命令仅返回可观察)

这不会(onChange将返回可观察)

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

所以我的问题是为什么它是这样工作的? 这是否意味着我们将使用相同的软件包版本

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

不需要。如果每个模块请求,它会得到自己的版本

这是否意味着我们将使用相同的软件包版本

只有当这些库将
rxjs
作为对等依赖项时,它才会以这种方式工作。使用
peerDependencies
可以决定确切的版本。但这需要
ionic native
来更改他们的代码

快速修复:
手动要求两个版本来添加扩展,即,
require('../node_modules/your/node_modules/rxjs')
和它们的相同。

是的,但我认为如果我从'rxjs/Observable'导入{Observable},那么ionic native也会这样做,所以我们引用相同的库。。。
updateService.getCommands().ExtensionHere();
BatteryStatus.onChange().ExtensionHere();