失敗するか成功するかに関係なく、3 つの grunt タスクを連続して実行する grunt ファイルを作成したいと考えています。grunts タスクの 1 つが失敗した場合、最後のエラー コードを返したいと考えています。
私は試した:
grunt.task.run('task1', 'task2', 'task3');
実行時の--force
オプションで。
これに関する問題は、--force
が指定されている場合、エラーに関係なくエラーコード 0 を返すことです。
ありがとう
失敗するか成功するかに関係なく、3 つの grunt タスクを連続して実行する grunt ファイルを作成したいと考えています。grunts タスクの 1 つが失敗した場合、最後のエラー コードを返したいと考えています。
私は試した:
grunt.task.run('task1', 'task2', 'task3');
実行時の--force
オプションで。
これに関する問題は、--force
が指定されている場合、エラーに関係なくエラーコード 0 を返すことです。
ありがとう
使用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();
});
});