8

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 つの部分が欠けています。そう:

4

2 に答える 2

9

最初のオプションは正しい方法です。node_modulesフォルダーをコミットするのではなくnpm install、必要なすべての依存関係をフェッチするようにユーザーに指示するだけです。

于 2012-09-24T09:57:13.927 に答える
1

オプション 3 を使用する場合、正しい構文は次のようになります。

grunt.loadTasks('$SHARED_TASKS_FOR_ALL_MY_GRUNT_PROJECTS/node_modules/grunt-coffee/tasks')

「外界」から隔離されたコンピューター上で実行され、ビルド時に依存関係を取り込むことができないビルド プロセスにこれを何らかの方法で使用する必要があります...

于 2013-04-17T11:11:58.900 に答える