为啥 node_modules 文件夹需要在 git repo 中删除?

Posted

技术标签:

【中文标题】为啥 node_modules 文件夹需要在 git repo 中删除?【英文标题】:Why node_modules folder needs to get removed in git repo?为什么 node_modules 文件夹需要在 git repo 中删除? 【发布时间】:2018-08-05 04:40:02 【问题描述】:

为什么需要忽略 git repo 中的 node_modules?

其他将使用我来自 repo 的代码的用户,他们不需要我的 node_modules 文件夹吗?

【问题讨论】:

node_modules 包含“来自其他存储库的代码”,可以轻松地从这些存储库中获取,并且您的 packages.json 文件已经完成,因此它们可以从原始存储库中获得所需的确切版本。为您在项目中使用的每个节点模块创建一个全新的存储库没有任何优势和很多劣势。此外,所有这些模块的实际存储库都包含它们的历史记录、问题数据库、文档等...... ***.com/questions/11459475/…***.com/questions/17069782/gitignore-and-node-modules***.com/questions/19328613/… 【参考方案1】:

这些模块是您应用程序的外部依赖项,您应该相应地将它们添加到您的packages.json 中。

您不必包含这些软件包的全部源代码,因为您可以使用单个命令安装它们:npm install,以及许多其他原因(请参阅 jfriend00 评论)。

所以通常,在开发应用程序时,我们会将node_modules 添加到.gitignore 以防止依赖被版本化。

这不是必需的(你可以随时做你想做的事),但强烈建议让你的 repo 保持干净和可维护。

【讨论】:

因为它很痛苦,所以在发生冲突时合并它【参考方案2】:

不需要对整个 node_modules 进行版本控制,因为使用 package.json 文件可以达到相同的目的,该文件是应用程序所需依赖项的描述。

当其他用户签入您的版本化代码时,一个简单的npm install 就足以使用 package.json 文件中提供的描述收集这些依赖项。

参照。 Why is the node_modules folder not committed to Git?

【讨论】:

【参考方案3】:

node_module 太大,你已经有 package.json 可以帮助安装 node_module 中的所有包 npm install / @ 987654322@命令。

保持小巧、干净和可维护,因此在 .gitignore 文件中添加 node_module

【讨论】:

以上是关于为啥 node_modules 文件夹需要在 git repo 中删除?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 React 需要这么多 node_modules?如何限制加载所有这些文件以使其值得使用 React?

为啥我的 node_modules 文件夹被排除在我的 phpStorm 中?

为啥 git stash 删除我的 node_modules 文件夹?

node npm 为啥所有模块都安装在根 node_modules 文件夹中?

当 .gitignore 中未忽略 node_modules 文件夹时,为啥 Git 不会添加/提交文件?

为啥 node.js 安装两个“node_modules”文件夹?