gruntjs 'Hello World' プロジェクトに取り組んでいますが、grunt タスクをインストールするのに最適な場所がないようです。たとえば、coffeescript のコンパイルを開始したい場合、'grunt-coffee' タスクをインストールする必要があります。
オプション 1: src ツリーに直接インストールする
これはうなり声があなたにそれをしてもらいたい方法のようで、うまくいきます。
cd $MY_PROJECT_HOME
npm install grunt-coffee
grunt coffee
ただし、これによりプロジェクト ツリーに 7.2mg が追加されます。src コントロールに入れたくありませんが、削除すると、grunt はプロジェクトをビルドしません。私はそれを .gitignore できますが、リポジトリをダウンロードする他の人は、同じインストールを行わないとビルドできません。これは、CI サーバーにとっても少し面倒です。
オプション 2: グローバルにインストールする
cd $MY_PROJECT_HOME
npm install -g grunt-coffee
grunt coffee
この方法でプラグインをインストールすると、Grunt はプラグインを見つけることができません。
Local Npm module "grunt-coffee" not found. Is it installed?
なぜこれがサポートされないのかは私には明らかではありません。
オプション 3: 他の場所にインストールしますか?
Grunt には、タスクをローカルにロードするloadTasksという API メソッドがあります。npms をプルダウンして、ここで参照したカスタム ディレクトリに自分で移動しようとしましたが、うまくいきませんでした。例えば
grunt.loadTasks('$SHARED_TASKS_FOR_ALL_MY_GRUNT_PROJECTS/node_modules/grunt-coffee')
その後:
cd $SHARED_TASKS_FOR_ALL_MY_GRUNT_PROJECTS
npm install grunt-coffee
cd $MY_PROJECT_HOME
grunt coffee
Task "coffee" not found. Use --force to continue.
オプション 4: Grunt は、その loadNpmTasks 呼び出しで、依存関係を .grunt ディレクトリのどこかにプルダウンします。
それはいいだろう... :)
編集
以下のシンドレが正しいです。オプション 1 は進むべき道ですが、package.json ファイルという 1 つの部分が欠けています。そう:
- package.json ファイルを追加し、grunt プロジェクトのすべての依存関係をそこに置きます。
- -edで
node_modules
あることを確認します。.gitignore
- README で
npm install
、クローンを実行する場合、またはビルド ファイルに依存関係を追加する場合に実行するためのいくつかの指示 (引数なし) を指定します。