更新依赖项也会破坏使用它的另一个依赖项(可传递)

时间:2018-08-05 17:13:17

标签: javascript angular npm dependencies transitive-dependency

在我的有角项目中,我最近将rxjs升级到了版本6。现在,由于某些重大更改(旧导入无法工作),npm(在node_modules文件夹内)的模块失败了。不再)。我为代码修改了导入,但是如何为正在使用的依赖项(angular2-markdown)修复导入?

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

不确定您的问题是什么。大多数人在维持自己的部门方面都非常糟糕。可以说,您是否尝试过切换到ngx-md,这是已弃用的angular2-markdown npm页-https://www.npmjs.com/package/angular2-markdown

上的建议

使用diff软件包升级到ng6时,我遇到了类似的问题。我中止了ng6升级。切换到新的程序包。然后进行了ng6升级,并且可以正常工作。不确定最适合您的方法,但是当您进行ng6升级时,会有很多活动部件,因此最好通过一次少做一点然后测试并保存到git来减少更改量,然后再进行移动进入下一部分。

我也希望您按照ng6页面上的ng update进行了ng6升级-https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4

PS您没有提到ng6升级,但是ng6升级免费提供了rxJS 6升级,因此如果错误,我们就对此感到遗憾

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