【问题标题】:Updating a dependency breaks another one that is using it too (transitive)更新依赖项会破坏另一个正在使用它的依赖项(传递)
【发布时间】:2018-08-06 02:40:33
【问题描述】:

在我的 Angular 项目中,我最近将 rxjs 升级到了版本 6。现在,来自 npm 的模块(在 node_modules 文件夹内)由于一些重大更改而失败(旧的导入不再起作用)。我为我的代码调整了导入,但是如何为我正在使用的依赖项 (angular2-markdown) 修复它们?

我想将旧的 rxjs 依赖项用于 angular2-markdown 模块,并将新的依赖项用于我的代码。这可能吗?我以为package-lock.json 会确保这仍然有效,但我没有找到设置angular2-markdown 依赖项的条目。

【问题讨论】:

    标签: javascript angular npm dependencies transitive-dependency


    【解决方案1】:

    您还可以查看 rxjs-compat 库,该库将添加对旧 Rxjs 版本代码的支持。 https://www.npmjs.com/package/rxjs-compat

    您可以使用 npm i rxjs-compat 安装。

    为了更安全,请删除 node_modules、package-lock.json 文件并重新安装 npm。

    【讨论】:

    • 谢谢你,我在弄乱了 package-lock.json 之后就这么做了。应该可以在那里添加旧的 rxjs 依赖。它工作正常(它找到了版本并将其添加到它的散列和锁定文件中的所有内容),但它不知何故未被该特定模块使用。我最终得到了同样的错误。
    【解决方案2】:

    不确定您的问题是什么。大多数人在维护他们的部门方面都很糟糕。可以说,您是否尝试过切换到 ngx-md,这是在已弃用的 angular2-markdown npm 页面上给出的建议 - https://www.npmjs.com/package/angular2-markdown

    我在使用 diff 包升级到 ng6 时遇到了类似的问题。我中止了 ng6 升级。切换到新包。然后进行了ng6升级并且它工作了。不确定最适合您的方法,但是当您进行 ng6 升级时,有很多移动部件,所以最好通过一次尽可能少的操作来减少所做的更改量,然后在移动之前对其进行测试并保存到 git到下一部分。

    另外,我希望您使用 ng update 进行 ng6 升级,如此处 ng6 页面所述 - https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4

    PS 你没有提到 ng6 升级,但 rxJS 6 升级随 ng6 升级免费提供,因此假设如果有错误很抱歉

    PPS 您是否正在使用 rxjs-compat,这将允许您升级到 rxJS 6,同时仍然允许您的某些部分代码使用旧方法,从而防止损坏。当您进行 ng6 更新时,这又是免费的 - 上面的链接讨论了 rxjs-compat BTW

    【讨论】:

    • 我升级到 ng6,是的。我注意到导致问题的 rxjs 升级。在对 package-lock.json 文件进行了大量试验后,我最终只添加了 rxjs-compat。谢谢。这个问题应该可以通过将 rxjs 的旧依赖添加到 package-lock.json 中的 angular2-markdown 模块部分来解决。如果有人为此提出解决方案,我想我会接受,因为这就是这个问题的主要内容。 +1,非常感谢您的帮助! :)
    • package-lock.json 受 3 件事的影响 (1) package.json (2) 以前的 package-lock.json (3) node_modules 文件夹 - 所以它会变得混乱 - 尝试删除 node_modules 和您之前的锁定文件,然后运行 ​​npm install - 它有时会为我生成一个更干净的锁定文件(如果 package.json 维护得当),有时它会完全破坏应用程序大声笑 - 值得一试 - 只要确保你如果需要,可以恢复到以前的锁定文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 2020-09-13
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    相关资源
    最近更新 更多