2016-04-20 58 views
0

各ウォッチの実行後に特定のタスクを実行するオプションはありますか?例: 無言の時計が終了した後にタスクを実行するには?

watch : { 
    js: {files:[], tasks:[]}, 
    css: {files:[], tasks:[]}, 
} 

私はwatch:jswatch:css両方の後にタスク「foo」を実行したい、と私はそれぞれにそのタスクを追加しないと、すべての時計は、タスクリストをマルチタスク、そして私は新しいを追加する必要はありません他のタスクのすべてのファイルを監視するタスクを監視します。

は、時計の一般的なoptions.afterEach APIか何かはありますか?

+0

でした君はこれを解決することができますか? –

+0

@SkipJack、あなたの答えをありがとうが、私は後で他のチームメンバーによって維持され、使用されるかもしれないよりクリーンなものを求めていました。おそらく他のタスクの後に実行を延期するために、イベントコールバックにsetTimeoutを追加する必要があります。そして、私はあまりにも多くのことを、同時並行して起こるものと組み合わせて起こっているかどうかはわかりません – user2520818

+0

問題ありません、いや、私は実際にもう兵卒を使用していない(のWebPACKに移動)が、私はそれがやや一般的なユースケースのように思えるように、このためのより保守オプションがなかったことに驚きました。私はあなたの最善の策は、そのgithubの問題に加入し、他の人がそこに示唆しているものを参照することかもしれないと思う。 –

答えて

0

短い答え:いいえ

うなり声やうなり声ウォッチと組み込みの方法はありません。 This github issueは、次のバージョンで追加する可能性について説明しています。

watchイベントがありますが、私が知る限りwatch:startまたはwatch:endのようなものはありません。あなたはそうのように、このイベントを使用することができます:

grunt.event.on('watch', function(action, filepath, target) { 
    grunt.log.writeln('Here is the action : ' + action); 
    grunt.log.writeln('Here is the filepath : ' + filepath); 
}); 

は、残念ながら、これはほんの始まりで動作します:

Running "watch" task 
Waiting... 
Here is the action : changed 
Here is the filepath : pre/js/console.js 
>> File "pre/js/console.js" changed. 
Running "jshint:all" (jshint) task 
... 

関連質問:

Is it possible to run a task after the watch task?

Run a command after a grunt task finishes

関連する問題