2017-04-18 115 views
0

我有点困惑NPM包版本NPM包不同版本的依赖

我有ionic2应用程序,并在我的packages.json我必须依赖于另外我有最新的离子本土具有依赖性[email protected][email protected]

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

这种方法将工作(Get命令只返回可观察)

updateService.getCommands().ExtensionHere(); 

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

BatteryStatus.onChange().ExtensionHere(); 

这是愚蠢的问题,但我是一个位卡住,因为我认为NPM将为它们全部使用最新版本。

所以我的问题是为什么它以这种方式工作? 这是否有任何方式可以说使用相同的软件包版本?

回答

1

这很愚蠢的问题,但我有点卡住了,因为我认为NPM将使用所有的最新版本。

不可以。每个模块如果有请求,都会有自己的版本。

而且有没有什么方法可以说使用相同的软件包版本?

它只会工作的方式,如果这些文库rxjs作为peerDependency。随着peerDependencies去决定确切的版本。但是这需要ionic-native来更改他们的代码。

的QuickFix:

需要两个版本手动添加您的扩展,即require('../node_modules/your/node_modules/rxjs')和同为他们

+0

是的但我的想法是,如果我正在从“rxjs/Observable”中导入{Observable};“和离子本土的做同样的,所以我们reffer相同的lib ... –