假设我有一个任务myCustomTask
被另一个任务quick
调用。
grunt.registerTask('myCustomTask', function(){
if(this.nameArgs === 'quick'){
console.log('ignoring task...');
return;
}else{
grunt.task.run('my-custom-task');
}
});
我希望myCustomTask
忽略grunt quick
, 将其从quick
任务中删除。
grunt.registerTask('quick', [
'task1',
'task2',
'myCustomTask'
]);
我希望this.nameArgs === 'quick'
在任务以grunt quick
的形式运行时会触发,但会跳过该任务并到达else块。换句话说,只有在我们使用this.nameArgs === 'myCustomTask'
我如何定位任何一项任务,目前正在调用我们的自定义任务,以便我可以告诉它忽略它?
答案 0 :(得分:2)
您是否尝试过Dynamic alias tasks?
我认为你可以做到以下几点:
grunt.registerTask('myCustomTask', function(mode) {
if (mode == 'quick') {
console.log('ignoring task...');
return;
}
grunt.task.run('my-custom-task');
});
<强>更新强>
如果要在运行某项任务时排除任务执行,则可以执行以下操作:
var taskSettings = {};
grunt.registerTask('task1', function() {
console.log('task 1');
});
grunt.registerTask('task2', function() {
if ('quick' == taskSettings.origin) {
console.log('skip task 2');
} else {
console.log('task 2');
}
});
grunt.registerTask('quick', function () {
taskSettings.origin = this.name;
grunt.task.run('task1', 'task2');
});
但就我而言,它看起来很奇怪,我建议在任务目标之间分配逻辑。