2013-05-10 23 views
5

Tôi muốn tạo một tập tin grunt chạy 3 nhiệm vụ grunt serially cái khác bất kể họ thất bại hoặc vượt qua. Nếu một trong những nhiệm vụ grunts không thành công, tôi muốn trả lại mã lỗi cuối cùng.Gruntfile nhận mã lỗi từ các chương trình serially

tôi đã cố gắng:

grunt.task.run('task1', 'task2', 'task3'); 

với các tùy chọn --force khi chạy.

Vấn đề với điều này là khi --force được chỉ định, nó trả về mã lỗi 0 bất kể lỗi nào.

Cảm ơn

Trả lời

7

Sử dụng grunt.util.spawn: http://gruntjs.com/api/grunt.util#grunt.util.spawn

grunt.registerTask('serial', function() { 
    var done = this.async(); 
    var tasks = {'task1': 0, 'task2': 0, 'task3': 0}; 
    grunt.util.async.forEachSeries(Object.keys(tasks), function(task, next) { 
    grunt.util.spawn({ 
     grunt: true, // use grunt to spawn 
     args: [task], // spawn this task 
     opts: { stdio: 'inherit' }, // print to the same stdout 
    }, function(err, result, code) { 
     tasks[task] = code; 
     next(); 
    }); 
    }, function() { 
    // Do something with tasks now that each 
    // contains their respective error code 
    done(); 
    }); 
}); 
+0

Bạn có thừa một dấu phẩy sau 'opts: {stdio: 'kế thừa'} 'nhưng đẹp thanks a lot !!! – GTDev

+0

Nó có mục đích;) Trailing dấu phẩy được làm mát trong nút> = 0,8. Ít nhất tôi nghĩ vậy heh –

Các vấn đề liên quan