2017-04-18 116 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 ... –