2

git で node_modules を処理する最良の方法を見つけようとしています。私が読んだことから、2つのオプションがあります:

A. プロジェクトと一緒に、すべての node_modules を git リポジトリに保持します。このように、私のプロジェクトを複製する人は、モジュールをインストールする必要はありません。

B. git リポジトリに node_modules を保持しないでください。つまり、「node_modules」を含む「.gitignore」ファイルを作成します。

ただし、一部のプロジェクトでは、これら 2 つのオプションのいずれも表示されません。たとえば、この node.js プロジェクトでは、node_modules はありませんが、.gitignore ファイルもありません...

このレポをフォークしてnpm installを実行すると、フォルダーは node_modules でいっぱいになり、.gitignore がないため、git はそれらをコミットしようとします...

私は何を間違っていますか?

4

2 に答える 2

8

package.jsonで定義されているnpm installプロジェクトのすべての依存関係をダウンロードしてインストールします。

"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"
}

これらがソース ツリーに表示されない理由については、さまざまな理由が考えられます。

  • 1 つの可能性は、それらがグローバルにインストールされていることです。
  • もう 1 つの可能性は、それらが実際には .gitignore に追加されているが、.gitignore 自体はコミットされていないことです (これは.git/info/exclude、プロジェクトのファイルに .gitignore を追加することによって行われます。

いずれにせよ、.gitignore が存在しない理由を知る唯一の方法は、プロジェクトの所有者に尋ねることです :)。

于 2013-06-12T17:14:26.983 に答える
2

私はこのノード モジュールの専門家ではありませんが、確かなことは 1 つあります。.gitignore がない場合、無視されるファイルはありません。これは明らかに、コミッターがこれらのモジュールをコミットしないように手動で処理していることを意味します。

于 2013-06-12T15:49:47.497 に答える