Я использую grunt в качестве бегуна задач.Способ, которым я хочу смоделировать моего бегуна, таков, что для любого набора задач «n» есть еще одна задача «m», которая запускается всегда после каждого «n».
Например,
module.exports = function(grunt) {
grunt.registerTask("reporting","reporting task",function(){
grunt.log.write("My reporting task that needs to be run after every other task run");
});
grunt.registerTask("A","A",function(){//dummy task});
grunt.registerATask("B","B",function(){//dummy task});
grunt.registerTask("default", ["A","B"]);
};
Если я выполню grunt, порядок выполнения будет A->B
Чего я хочу достичь, это A->reporting->B->reporting
Очевидное решение будетвызовите grunt.task.run('reporting')
внутри A и B. Проблема, с которой я столкнулся при таком подходе, заключается в том, что если я вызову grunt.fail.error()
внутри "A" или "B", то это не будет работать, даже если я использую опцию --force
.я строю общий обработчик задач на основе grunt, который загружает список этих наборов задач на основе некоторых метаданных (не GruntFile), и было бы плохо иметь вызов task.run
внутри каждой отдельной задачи.
Anyлучший способ справиться с этим?