0

我需要在循环中更改 grunt 副本中的目标。

我可以通过以下方式做到这一点:

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

然后运行:

grunt.task.run('copy');

但是循环中的最后一个 dest 集适用于所有任务。

如何为循环中运行的每个任务应用单独的 dest?

4

1 回答 1

1

我只向您提供了一个伪代码和想法,如果我必须循环运行某些任务,我是如何解决这类问题的,也许它可以帮助解决您的问题。创建一个带有参数的任务:

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: {}
    };
};

这个任务将在你的 gruntfile 中循环调用:

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]);
    }
});
于 2016-04-11T12:41:51.100 回答