我想创建一个使用不同参数运行另一个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不允许我这样做。
我希望我已正确解释了我的问题。