从另一个任务访问 Grunt 当前任务
Accessing Grunt Current Task from Another Task
假设我有一个任务 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'
时才满足第一个条件
我如何定位当前正在调用我们的自定义任务的任务,以便我可以告诉它忽略它?
你试过了吗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');
});
但对我来说,它看起来 st运行ge,我建议在任务目标之间拆分逻辑。
假设我有一个任务 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'
我如何定位当前正在调用我们的自定义任务的任务,以便我可以告诉它忽略它?
你试过了吗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');
});
但对我来说,它看起来 st运行ge,我建议在任务目标之间拆分逻辑。