我试图找出在git中处理node_modules的最佳方法。根据我的阅读,有两种选择:
一个。将所有node_modules与我的项目一起保存在git存储库中。这样,克隆我的项目的人不必安装任何模块。
B中。不要在git存储库中保留任何node_modules,即有一个包含“node_modules”的“.gitignore”文件。
但是,在某些项目中,我没有看到这两个选项中的任何一个。例如,在this node.js project中,没有node_modules,也没有.gitignore文件......
当我分叉这个仓库并执行 npm install 时,该文件夹中填充了node_modules,由于没有.gitignore,git会尝试提交它们...
我做错了什么?
答案 0 :(得分:8)
您没有做错任何事,npm install
将下载并安装项目的所有依赖项,这些依赖项在package.json中定义:
"dependencies": {
"underscore" : ">=1.3.3"
},
"devDependencies" : {
"mocha" : ">=1.0.0",
"canvas" : ">=0.10.0",
"cradle" : ">=0.2.0",
"should" : ">=0.6.0",
"async" : ">=0.1.18"
}
关于它们如何不出现在源树中,有许多可能的解释:
.git/info/exclude
文件中添加.gitignore来完成的。在任何情况下,了解为什么没有.gitignore存在的唯一方法是询问项目的所有者:)。
答案 1 :(得分:2)
我不是这个节点模块的专家,但有一点是肯定的。如果没有.gitignore,则不会忽略任何文件。这显然意味着提交者正在手动处理它而不是提交这些模块。