[英]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');
}
});
我希望grunt quick
可以忽略myCustomTask
, 而不必將其從quick
任務中刪除。
grunt.registerTask('quick', [
'task1',
'task2',
'myCustomTask'
]);
我希望this.nameArgs === 'quick'
會在grunt quick
運行任務時觸發,但是會跳過該任務並到達else塊。 換句話說,僅當我們使用this.nameArgs === 'myCustomTask'
時才滿足第一個條件this.nameArgs === 'myCustomTask'
如何定位當前正在調用我們的自定義任務的任何任務,以便我可以告訴它忽略它?
您是否嘗試過動態別名任務 ?
我認為您可以執行以下操作:
grunt.registerTask('myCustomTask', function(mode) {
if (mode == 'quick') {
console.log('ignoring task...');
return;
}
grunt.task.run('my-custom-task');
});
UPDATE
如果要在執行某些任務時排除任務執行,則可以執行以下操作:
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');
});
但是就我而言,這看起來很奇怪,我建議在任務目標之間分配邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.