Typescript NPM包的不同版本依赖关系
我对NPM软件包版本有点困惑 我有ionic2应用程序,在我的packages.json中我依赖于rxjs@5.1.1此外,我有最新的离子本机的依赖性rxjs@5.0.1. 现在的问题是,我编写了对Observable的扩展来添加新方法。它在我的服务上按预期工作。但当我使用来自ionic native的服务时,它不起作用 此方法将起作用(Get命令仅返回可观察) 这不会(onChange将返回可观察) 这是一个愚蠢的问题,但我有点陷入困境,因为我认为NPM将使用最新版本的所有 所以我的问题是为什么它是这样工作的? 这是否意味着我们将使用相同的软件包版本 这是一个愚蠢的问题,但我有点陷入困境,因为我认为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将使用最新版本的所有 所以我的问题是为什
rxjs
作为对等依赖项时,它才会以这种方式工作。使用peerDependencies
可以决定确切的版本。但这需要ionic native
来更改他们的代码
快速修复:
手动要求两个版本来添加扩展,即,
require('../node_modules/your/node_modules/rxjs')
和它们的相同。是的,但我认为如果我从'rxjs/Observable'导入{Observable},那么ionic native也会这样做,所以我们引用相同的库。。。
updateService.getCommands().ExtensionHere();
BatteryStatus.onChange().ExtensionHere();