为什么安装一个npm包会导致其他许多包被删除?

5

我在使用npm安装一个包的过程中遇到了困难。这个包安装成功,但是它却移除了很多其他的包。

我无法在另一台机器上复制这个问题。以下是包安装的输出:

[masterwok@crunchbox Caster]$  npm install react-native-google-cast --save
npm notice created a lockfile as package-lock.json. You should commit this file.
+ react-native-google-cast@1.3.0
added 1 package and removed 638 packages in 7.967s
[masterwok@crunchbox Caster]$  

从您可以看到的情况来看,它完全破坏了我的应用程序依赖关系。可能是什么原因导致这种情况?如果我必须猜测,我会说某些依赖未能满足要求并向下级联。我真的不知道哈。


我对有关NPM5问题的已接受答案发表了评论。 - Rrrapture
你能否在你的 package-lock.json 文件中,贴出一些受影响部分的小节? - Mobiletainment
2个回答

3

我不确定为什么npm在做它正在做的事情,但从输出结果 package-lock 来看,我猜测您正在使用npm5。

尝试降级到npm4。


哇,就是这样了。谢谢!你知道为什么会导致它像这样失败吗? - masterwok
1
我不确定具体情况。如果有更多经验的npm新版本用户能够参与讨论,那就太好了。我的理解是:当你使用--save安装时,npm5会创建一个package-lock.json文件。我不完全清楚它的作用和原因,但在快速的谷歌搜索中,似乎有可能导致npm回滚你的安装。¯_(ツ)_/¯ - klvs
2
最新版本的NPM(我写这篇文章时是5.0.3)存在一些错误。除了一些错误之外,升级到NPM5*并在现有项目上运行npm install也存在一些问题。不是一个错误,而是一个特性:-)从预先安装了NPM5版本的机器上运行NPM install将不会将更改写入package-lock.json文件中。参考资料:第二次运行“npm install”后缺少依赖项 npm@5已知问题跟踪 - Rrrapture
就是这样。谢谢! - klvs
在运行npm install第二次后出现“缺少依赖项”的问题已经得到解决(https://github.com/npm/npm/issues/16839),并发布了npm v5.1版本;您现在可以尝试使用“npm i -g npm”进行更新。 - 1j01

1
我遇到了npm v5.8.0的问题。 我还没有找到任何避免安装新软件包时删除软件包的方法,但有一种相对较快的恢复方式。 在VS2017解决方案资源管理器中,右键单击“依赖项/npm”节点,然后选择“还原软件包”。这需要一段时间才能运行完,并且实际上并没有恢复所有软件包,但可以让大部分软件包恢复正常。 当此过程运行完毕后,右键单击“依赖项/npm/aspnet-webpack”节点,然后选择“更新软件包”。随着此过程的运行,所有缺失的软件包都将被恢复。 希望这可以帮助到您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接