npm 打包不同版本依赖

NPM package different versions dependency

我对 NPM 包版本有点困惑

我有 ionic2 应用程序,在我的 packages.json 中,我依赖于 rxjs@5.1.1,我还有最新的 ionic-native,它依赖于 rxjs@5.0.1。

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

此方法可行(简单地获取命令 return 可观察)

updateService.getCommands().ExtensionHere();

这不会(onChange 会 return 可观察)

BatteryStatus.onChange().ExtensionHere();

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

所以我的问题是为什么它以这种方式工作? 这有没有办法说好使用相同的包版本?

This is silly question but i am a bit in stuck since I thought that NPM will use latest version for all of them.

没有。如果需要,每个模块都会获得自己的版本。

And is this there any way to say well use same package version?

只有当这些库有 rxjs 作为 peerDependency 时,它才会那样工作。使用 peerDependencies 可以决定确切的版本。但这需要 ionic-native 更改他们的代码。

快速修复:

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

相同