我安装的软件包在node_modules中丢失了

时间:2020-02-08 05:16:37

标签: javascript reactjs react-native npm

在我的项目中,我使用的gitnode_modules文件夹显然被忽略了。我正在branch1工作,并添加了一些依赖项(例如redux),并通过npm install安装了它们。然后我切换到与branch2同时创建的branch1,现在它与branch1的依赖关系有所不同。我再次使用npm install来安装那些软件包。

这就是发生的事情:当我回到branch1时,找不到在branch1工作期间已经安装的软件包。我预计'node_modules会被忽略,两个分支程序包都存在。尽管我之前已经安装了npm,但我不得不再次运行npm install。

所以我的问题是什么原因造成的? git在做某事吗?还是npm做某事?

1 个答案:

答案 0 :(得分:1)

这是一个可能有助于解释的假想场景:

  1. 在分支1上安装“ A”。它将保存到node_modules,并且您将更改提交到package.jsonpackage-lock.json
  2. 您结帐第2个分支,导致您的package.jsonpackage-lock.json不再具有“ A”-尽管您的node_modules保持不变(忽略),意味着“ A”仍然存在。
  3. 您在分支2上运行npm install,该分支使用package.jsonpackage-lock.json按照其规范更新node_modules。因为他们没有“ A”,所以它会从您的node_modules中删除。
  4. 您签出分支1,并且您的node_modules再次不受此git checkout的影响-这意味着您将需要再次运行“ npm install”以使“ A”返回node_modules。 / li>