使用不同的选项/参数时,我可以使用Grunt任务多次运行Grunt任务吗?

时间:2017-09-18 17:34:46

标签: gruntjs

我想创建一个使用不同参数运行另一个grunt任务的grunt任务。

我们假设我有以下grunt'子任务':

grunt.registerTask('subtask', ['js', 'css']);

还有一些笨拙的配置:

js: {
    src: [
         'code/<%= grunt.option("param1") %>/<%= grunt.option("param2") %>/js/<%= grunt.option("param2") %>.js'
          ],
    dest: 'temp/frontend.js'
},

我想创建一个调用此子任务的任务。该任务应运行以下命令:

subtask --param1=blue  --param2=red
subtask --param1=yellow  --param2=green
subtask --param1=blue  --param2=blue
subtask --param1=purple  --param2=green

为了实现这一点,我想我会创建另一个任务来运行上述命令。

grunt.registerTask('triggerSubTask', function(arg0, arg1, arg2){

   if(arg1 === 'dark'){
     param1 = 'blue'
   } else if (arg1 === 'light'){
     param1 = 'yellow
   }
   //some more code

   if(arg2 === 'bright'){
     param1 = 'red'
   } else if (arg1 === 'light'){
     param1 = 'green'
   }

   //some more code in fact I am not using an if else here but some
     complexer code. param 1 and param 2 are different every time    
     grunt.task.run is called the following code will be a loop, but    
     I start hardcoded I want this task to do the following:


    grunt.config.set('param1', 'param1');
    grunt.config.set('param2', 'param2');

    var arg1 = 'dist';
    var arg2 = '--param1=' + arg1;
    var arg3 = '--param2=' + arg2;

    grunt.task.run(arg0);

    grunt.config.set('param1', 'param1');
    grunt.config.set('param2', 'param2');

    var arg1 = 'dist';
    var arg2 = '--param1=' + arg1;
    var arg3 = '--param2=' + arg2;

    grunt.task.run(arg0);
});

在我的cmd中,我运行以下命令:grunt bootstrap:subtask:dark:bright

真正的问题: 运行grunt时,我无法更改grunt.config('param1')的值。 Grunt不允许我这样做。

我希望我已正确解释了我的问题。

0 个答案:

没有答案