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

Javascript 更新依赖项会破坏另一个也在使用它的依赖项(可传递),javascript,angular,npm,dependencies,transitive-dependency,Javascript,Angular,Npm,Dependencies,Transitive Dependency,在我的angular项目中,我最近将rxjs升级到了版本6。现在,npm中的一个模块(在节点\u modules文件夹中)由于一些破坏性的更改(旧的导入不再工作)而失败。我为我的代码调整了导入,但是如何修复我正在使用的依赖项(angular2 markdown) 我想对angular2 markdown模块使用旧的rxjs依赖项,对我的代码使用新的rxjs依赖项。这可能吗?我认为package lock.json可以确保它仍然有效,但我没有找到一个条目设置angular2标记的依赖项您还可以检查

在我的angular项目中,我最近将
rxjs
升级到了版本6。现在,npm中的一个模块(在
节点\u modules
文件夹中)由于一些破坏性的更改(旧的导入不再工作)而失败。我为我的代码调整了导入,但是如何修复我正在使用的依赖项(
angular2 markdown


我想对
angular2 markdown
模块使用旧的rxjs依赖项,对我的代码使用新的rxjs依赖项。这可能吗?我认为
package lock.json
可以确保它仍然有效,但我没有找到一个条目设置
angular2标记的依赖项

您还可以检查rxjs compat库,它将添加对旧rxjs版本代码的支持

您可以使用npmirxjscompat安装


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

不确定您的问题是什么。大多数人在维持他们的DEP方面都很糟糕。我只想说,您是否尝试过切换到ngx md,这是不推荐的angular2 markdown npm页面上给出的建议-

我在升级到带有diff包的ng6时遇到了类似的问题。我中止了ng6升级。切换到新的软件包。然后ng6升级成功了。不确定对您来说最好的方法是什么,但是当您进行ng6升级时,会有很多移动部件,因此最好通过一次做尽可能少的事情来减少所做的更改,然后进行测试,并在移动到下一个部件之前保存到git

此外,我希望您使用ng6页面上所述的ng更新进行ng6升级-

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)previous package-lock.json(3)node_modules文件夹-因此它可能会变得混乱-尝试删除node_模块和您以前的锁文件,然后运行npm安装-它有时会为我生成一个更干净的锁文件(如果package.json得到正确维护),其他时候,它可能会完全破坏应用程序lol-值得一试-只要确保你可以恢复到以前的锁文件,如果需要的话。谢谢你,我在弄乱了包-lock.json后就这样做了。应该可以在那里添加旧的rxjs依赖项。它工作正常(它找到了版本并将其与哈希和锁文件中的所有内容一起添加),但不知何故该特定模块没有使用它。我最后也犯了同样的错误。