2016-04-11 8 views
0

私はループでgruntコピーで宛先を変更する必要があります。設定を設定していますか?

私は経由でこれを行うことができます。

grunt.task.run('copy'); 
をしかし、ループ内で設定された最後のdestがすべてのタスクに適用されます。そして、実行

grunt.config.set('copy.files.dest', 'public/'+[i]); 

ループ内で実行されるタスクごとに個別のdestを適用するにはどうすればよいですか?

答えて

1

私はループ内でいくつかのタスクを実行しなければならない場合、どのように私がその種の問題を解決したか疑問コードとアイデアのみを提供します。パラメータを取るタスクを作成します:

あなたがループ内でgruntfileにこのタスクが呼び出されます
module.exports = function(grunt){ 

    grunt.registerTask('myTask', 'Task description', function(dest){ 

     grunt.config.set('copy.files.dest', dest); 
     grunt.task.run(['task list which uses parameter from copy.files.dest']); 

    }); 

    return{ 
     tasks: {} 
    }; 
}; 

:のparamsを設定するための

grunt.registerTask('myTask2', 'task description', function(){ 
    var params = ['/path/to/destination', 'second/path/to/dest']; 

    for (var i = 0; i < params.length; i++) { 
     grunt.task.run('myTask1:' + params[i]); 
    } 
}); 
+0

良いアイデアではなく、すべてのタスクが(コピーなど)のparamsを取り、それは本当に質問に答えるものではありません。 – panthro

+0

あなたの構造はわかりませんが、何らかの動的なgrunt設定を1つのタスクに必要とするすべてのタスクを収集し、ループ内でこの1つのタスクを実行すると、すべてのタスクがどのパラメータがそれを使用するかを気にします働ける。ちなみに、この種の問題を解決しようとするプラグインもあります:https://www.npmjs.com/package/grunt-galvanize – thadam

+0

助けてくれてありがとう、私はupvotedしましたが、答えは私ではありません受け入れることができません。とにかくありがとう。 – panthro

関連する問題