2012-03-03 279 views
8

我試圖讓npm安裝node-gitteh作爲依賴關係通過npm installpackage.json讀取。不幸的是,這個npm包在節點0.6.x中被破壞了,但沒有問題,因爲有一個分叉的repo來修復這些問題(https://github.com/hughsk/node-gitteh.git)。npm安裝分模塊git子模塊

現在的問題是,這個分叉回購有一個子模塊,所以如果我嘗試從GitHub在package.json下載tar:

, "dependencies" : { 
    "gitteh" : "https://github.com/hughsk/node-gitteh/tarball/master" 
} 

我得到等同於「子模塊文件夾中沒有找到」錯誤。如果我手動克隆相同的回購,並從node-gitteh文件夾執行遞歸子模塊更新和npm install,它工作正常,但我無法弄清楚如何讓npm來做到這一點。

回答

1

我有同樣的問題,迄今爲止只依靠克隆我的模塊到node_modules和手動進行子模塊更新。如果npm自動處理這將是很好的。

在的package.json有一個腳本場(見npm docs) 所以可以做

"scripts":{"preinstall": "git submodule update -i -r"} 

對於這樣的一個例子見https://github.com/isaacs/octave-test

+1

npm不會複製'.gitmodules',這樣只會在本地工作:( – 2012-03-15 17:04:59

+0

在我的情況下,npm恰好給我一個.gitmodules,但如果沒有.git文件告訴我什麼版本安裝::( – Steve 2012-12-12 11:29:58

+0

Mine保留'.gitmodules'文件,但就是這樣,其他的git元數據都沒有關閉,子模塊目錄根本沒有顯示出來。 – Chev 2014-04-11 18:48:44

-2

根據the docs,你需要提供特殊格式的git url。 此外,它需要指向git回購(您將用於git clone的地址相同),而不是github提供的tarball。

在你的情況(GIT通過HTTPS),這將是:

, "dependencies" : { 
    "gitteh" : "git+https://github.com/hughsk/node-gitteh" 
} 

利用這一點,故宮將默認爲master分支。