我对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会为所有人使用最新版本。
所以我的问题是为什么它以这种方式运作? 这有什么方法可以说使用相同的包版本吗?
答案 0 :(得分:1)
这是一个愚蠢的问题,但我有点陷入困境,因为我认为NPM会为所有人使用最新版本。
没有。如果请求,每个模块都有自己的版本。
这有什么方法可以说使用相同的包版本?
如果这些库将rxjs
作为 peerDependency ,它将只会以这种方式工作。使用peerDependencies
,您可以决定确切的版本。但这需要ionic-native
来更改其代码。
手动要求两个版本添加您的扩展程序,require('../node_modules/your/node_modules/rxjs')
和他们的相同。