簡體   English   中英

從另一個任務訪問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');
    }
});

我希望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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM