2012-03-03 17 views
8

node-gittehを依存関係としてインストールするためにnpmを取得しようとしています。これはpackage.jsonから読み取るnpm installです。残念ながら、このnpmパッケージはノード0.6.xで壊れていますが、問題を修正するフォークされたレポがあるので問題はありません(https://github.com/hughsk/node-gitteh.git)。npmサブモジュールでforked gitをインストール

今の問題は、私がpackage.jsonにgithubのからタールをダウンロードしようとするので、もしこのフォークレポは、サブモジュールを有することである。

, "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'をコピーしないので、ローカルでしか動作しません:( –

+0

私の場合、npmは私に.gitmodulesを与えますが、それでも.gitファイルがなければ十分ではありません。 install :( – Steve

+0

Mineは '.gitmodules'ファイルを保持しますが、それだけです。他のgitメタデータはどれも下がりませんし、サブモジュールのディレクトリも表示されません。 – Chev

-2

the docsによれば、git urlを特別な形式で指定する必要があります。 また、git repo(git cloneと同じアドレス)を指す必要があります.githubが提供するtarballではなく、あなたのケースでは

(HTTPS経由でgitの)、それは次のようになります。

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

これを使用して、NPMは、masterブランチにデフォルト設定されます。

関連する問題