2013-06-12 48 views
1

我想弄清楚在git中處理node_modules的最佳方法。從我讀,有兩種選擇:.gitignore和node_modules

A.把所有的node_modules在git倉庫,跟我在一起的項目。這樣,克隆我的項目的人不必安裝任何模塊。

B.不要守在git倉庫任何node_modules,即有「的.gitignore」的文件,包含‘node_modules’。

然而,在一些項目中,我沒有看到任何這兩個選項。例如,在this node.js project,沒有node_modules,也沒什麼的.gitignore文件...

當我叉這個回購,並做NPM安裝夾時,會充滿了node_modules,並且因爲沒有。 gitignore,混帳嘗試提交他們...

我在做什麼錯?

回答

7

你沒有做錯什麼,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,則不會忽略任何文件。這顯然意味着提交者正在手動處理它,而不是提交這些模塊。

+2

我同意你的意見。我認爲這是存儲庫所有者的誤解。 – bpoiss