【问题标题】:NPM package different versions dependencynpm包不同版本依赖
【发布时间】:2017-09-13 20:13:33
【问题描述】:

我对 NPM 包版本有点困惑

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

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

这个方法可以工作(Get 命令只返回 Observable)

updateService.getCommands().ExtensionHere();

这不会(onChange 将返回 Observable)

BatteryStatus.onChange().ExtensionHere();

这是一个愚蠢的问题,但我有点陷入困境,因为我认为 NPM 将为所有这些问题使用最新版本。

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

【问题讨论】:

    标签: typescript npm ionic2 rxjs ionic-native


    【解决方案1】:

    这是一个愚蠢的问题,但我有点陷入困境,因为我认为 NPM 将为所有这些问题使用最新版本。

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

    这有什么办法可以说使用相同的包版本吗?

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

    快速修复:

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

    【讨论】:

    • 是的,但我想的是,如果我正在执行“从 'rxjs/Observable' 导入 { Observable };”和 ionic-native 也在做同样的事情,所以我们引用相同的库......
    猜你喜欢
    • 1970-01-01
    • 2017-08-06
    • 2016-01-09
    • 1970-01-01
    • 2021-11-14
    • 2020-06-08
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多