.gitignore和node_modules

Ere*_*evi 2 github gitignore node.js node-modules

我试图找出在git中处理node_modules的最佳方法.根据我的阅读,有两种选择:

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

B.不要守在git仓库任何node_modules,即有"的.gitignore"的文件,包含'node_modules’.

但是,在某些项目中,我没有看到这两个选项中的任何一个.例如,在该项目的Node.js,没有node_modules,也没什么的.gitignore文件...

当我叉这个回购协议,也NPM安装,文件夹充满node_modules,并且因为没有的.gitignore,混帐尝试提交他们...

我究竟做错了什么?

ver*_*loc 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"
}
Run Code Online (Sandbox Code Playgroud)

关于它们如何不出现在源树中,有许多可能的解释:

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

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