javascript - 我安装的包在node_modules中丢失了

标签 javascript reactjs react-native npm

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

所以发生的事情是这样的:当我回到 branch1 时,没有找到我在 branch1 工作期间已安装的软件包。我预计这是因为 node_modules 被忽略,两个分支包都存在。尽管我之前安装过它们,但我必须再次运行 npm install。

所以我的问题是什么导致了这个?是 git 在做某事吗?或者 npm 做了什么?

最佳答案

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

  1. 在分支 1 上安装“A”。它会保存到 node_modules 中,然后您提交对 package.jsonpackage-lock.json 的更改。
  2. 您 checkout 分支 2,导致您的 package.jsonpackage-lock.json 不再有“A” - 尽管您的 node_modules > 保持不变(gitignored),这意味着“A”仍然存在。
  3. 您在分支 2 上运行 npm install,它使用您的 package.jsonpackage-lock.json 来更新您的 node_modules 根据其规范。因为它们没有“A”,所以它会从您的 node_modules 中删除。
  4. 您 checkout 分支 1,并且您的 node_modules 再次不受此 git checkout 的影响 - 这意味着您需要再次运行“npm install”才能在 node_modules 中重新获取“A”

关于javascript - 我安装的包在node_modules中丢失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60124126/

相关文章:

javascript - react 原生 redux 状态更新但不在组件中渲染

react-native - 如何在分享表建议中显示React Native App?

javascript - react native 和 react 导航 : Accesing params from sibling screen in TabNavigator

javascript - 我们是否需要 NodeJs 来在服务器上运行 react 应用程序?

javascript - 什么值从带有复选框的表单传递到 java 脚本

javascript - 在 ReactJS 中的 VisJS 网络图的 Canvas 上添加多个节点框选择器

javascript - 如何在 React Native 中加载 Web Assembly 脚本?

javascript - 谷歌可视化 : Organizational Chart background color for Node not working

javascript - Angular 2搜索服务错误此: res. json不是函数

ios - 长按后启用 ScrollView 中的元素拖动