【问题标题】:.gitignore and node_modules.gitignore 和 node_modules
【发布时间】:2013-06-08 19:38:16
【问题描述】:

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

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

B.不要在 git 存储库中保留任何 node_modules,即,有一个包含“node_modules”的“.gitignore”文件。

但是,在某些项目中,我看不到这两个选项中的任何一个。比如this node.js project中,没有node_modules,也没有.gitignore文件……

当我 fork 这个 repo 并执行 npm install 时,文件夹中充满了 node_modules,并且由于没有 .gitignore,git 尝试提交它们...

我做错了什么?

【问题讨论】:

    标签: node.js github gitignore node-modules


    【解决方案1】:

    你没有做错什么,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"
    }
    

    对于这些如何不出现在源代码树中有很多可能的解释:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我同意你的看法。我认为这是存储库所有者的错误。
      猜你喜欢
      • 1970-01-01
      • 2018-06-22
      • 2018-01-12
      • 2014-05-19
      • 2022-06-20
      • 1970-01-01
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多