Node.js .gitignore和node_模块

Node.js .gitignore和node_模块,node.js,github,gitignore,node-modules,Node.js,Github,Gitignore,Node Modules,我试图找出在git中处理node_模块的最佳方法。据我所知,有两种选择: A.将所有node_模块与我的项目一起保存在git存储库中。这样,克隆我的项目的人就不必安装任何模块 B.不要在git存储库中保留任何节点_模块,即有一个包含“节点_模块”的“.gitignore”文件 然而,在一些项目中,我看不到这两个选项中的任何一个。例如,在中,没有节点_模块,但也没有.gitignore文件 当我分叉这个repo并进行npm安装时,文件夹中充满了node_模块,并且由于没有.gitignore,gi

我试图找出在git中处理node_模块的最佳方法。据我所知,有两种选择:

A.将所有node_模块与我的项目一起保存在git存储库中。这样,克隆我的项目的人就不必安装任何模块

B.不要在git存储库中保留任何节点_模块,即有一个包含“节点_模块”的“.gitignore”文件

然而,在一些项目中,我看不到这两个选项中的任何一个。例如,在中,没有节点_模块,但也没有.gitignore文件

当我分叉这个repo并进行npm安装时,文件夹中充满了node_模块,并且由于没有.gitignore,git尝试提交它们


我做错了什么?

我不是这方面的专家,但有一点是肯定的。如果没有.gitignore,则不会忽略任何文件。这显然意味着提交者正在手动处理它,而不是提交这些模块

如果您没有做错任何事情,
npm install
将下载并安装项目的所有依赖项,这些依赖项定义在:

有许多可能的解释说明这些内容如何不出现在源代码树中:

  • 一种可能性是它们是在全球范围内安装的
  • 另一种可能性是,它们实际上添加到了.gitignore中,但是.gitignore本身永远不会提交(这是通过在项目的
    .git/info/exclude
    文件中添加.gitignore来完成的)

在任何情况下,知道为什么不存在.gitignore的唯一方法是询问项目的所有者:)。

我同意你的看法。我认为这是对存储库所有者的误解。
"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"
}