15

AngularJS プロジェクトを作成するとき

yo angular 

node_modules/ ディレクトリを作成しますが、そのディレクトリを .gitignore に置きます。プロジェクトを別の場所に複製して実行すると

grunt server

私は得る

致命的なエラー: ローカル grunt が見つかりません。

このメッセージが表示される場合は、Gruntfile が見つからないか、grunt がプロジェクトにローカルにインストールされていません。grunt のインストールと構成の詳細については、入門ガイドを参照してください。

ただし、入門ガイドには、欠落している node_modules/ ディレクトリの処理方法については何も記載されていません。

node_modules/ ディレクトリは、yeoman が .gitignore に配置したため、意図的に欠落しています。

この場合、Yeoman と Grunt を使用する正しい方法は何ですか?
Yeoman と Grunt に関するより良いドキュメントはありますか?

ありがとう。

4

2 に答える 2

38

それが正しい振る舞いです。の内容はnode_modules、ソース管理にコミットすることを意図していません。npmの背後にある考え方は、必要なすべてのノードの依存関係をpackage.jsonというファイルで追跡するというものです。このファイルは、ソース管理にコミットする必要があります。次に、別のマシンで、コードをチェックアウトして実行できます

npm install

これにより、package.json ファイルが確認され、必要なすべてのファイルがクラウドからダウンロードされ、それらすべてが新しいnode_modulesディレクトリに配置されます。

于 2013-10-12T04:25:59.610 に答える
7

このトピックについて十分な検索を行うと、最終的に次の記事に出くわすことになります。この記事では、アプリケーションを構築している場合は依存関係をチェックインする必要があると述べています。package.json への依存は、モジュール作成者が更新を公開するときに問題を引き起こす可能性があります。より良い解決策は、使用することです

npm shrinkwrap

これにより、依存関係と依存関係をロックするファイルが作成されますが、モジュールの作成者が同じバージョンを別のコードで再公開する可能性があるため、これでも不安定になる可能性があります。

アプリケーションを作成しているのでyo angular、私見 node_modules は .gitignore に含めるべきではありませんが、Windows を使用している場合、パスの長さのためにそのフォルダー内のモジュールをチェックインできない可能性が非常に高いことを発見しました。 。はぁ。

于 2014-01-16T19:09:12.287 に答える