如何在git中处理node_modules文件夹?

3

我是git和node的初学者。因此,我在git中创建了一个新的存储库,并安装了React和Babel,但是git告诉我该存储库太大了。实际上,我所做的只是运行这样的命令:

created index.html
created app.js
> npm init (initialized package.json)
> npm install --save react react-dom
> npm install --save-dev babel_preset_react
> npm install --save-dev babel_preset_es2015
added babel config to package.json

也许我错过了什么,但是我甚至还没有构建任何东西,就已经收到了我的存储库太大的投诉。Git桌面甚至会抛出OutOfMemory异常!所以我想,也许我不应该检查node_modules文件夹。然后我读到了这个:https://web.archive.org/posts/nodemodules-in-git.html 但是现在我更加困惑了。文章说,您应该为部署的项目检查node_modules。但是那不意味着它仍然会是一个“大型存储库”吗? 在底部,文章说不要将node_modules添加到gitignore中。 我认为gitignore只是忽略该文件夹中的文件不被提交到git。 所以,这是在告诉我们不要忽略node_modules吗? 也就是说,检查node_modules? $ npm rebuild on deploy是什么? 对于npm和git的初学者,有人能用简单的术语解释一下我应该做什么吗?
2个回答

1

您不需要将 node_modules 推送到您的代码仓库中。将 node_modules 添加到 .gitignore 文件中,当您在服务器上部署代码时,您需要使用以下命令安装 node_modules:

npm install

当您本地安装 node_modules 并将其推送到仓库时,package.json 会被更新。当您在服务器上运行 npm install 时,所有在 package.json 中列出的软件包都将被安装。

1
我刚刚检查了你分享的链接,发现它已经失效了。我们从不将node_modules添加到存储库中,因为它们会增加整个文件大小很多兆。请在.gitignore中添加node_modules。你应该只将package.json添加到你的存储库中。这是我的AngularJs项目中.gitignore的样子:
.idea
node_modules
dist
npm-debug.log*
.DS_Store

如果您担心版本升级会导致破坏性更改,请在软件包的版本号(package.json)前面指定“~”符号,这样只会考虑补丁。

Ex.,

"angular": "~1.5.6"

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