私はsの提案asgoth「Adam Hutchinsonでの解決」を試してみましたが、強制フラグをfalseに戻ってすぐに設定されていたことがわかっgrunt.task.runためgrunt.task APIドキュメントを読んで、それはその
を述べています。
taskList内の指定されたすべてのタスクは、現在のタスクが完了した直後に、指定された順序で実行されます。
つまり、grunt.task.runを呼び出した直後に強制フラグをfalseに戻すことはできませんでした。私が見つけた解決策は、フォールトフラグをfalseに設定して明示的にタスクを実行することでした。
grunt.registerTask('task-that-might-fail-wrapper','Runs the task that might fail wrapped around a force wrapper', function() {
var tasks;
if (grunt.option('force')) {
tasks = ['task-that-might-fail'];
} else {
tasks = ['forceon', 'task-that-might-fail', 'forceoff'];
}
grunt.task.run(tasks);
});
grunt.registerTask('forceoff', 'Forces the force flag off', function() {
grunt.option('force', false);
});
grunt.registerTask('forceon', 'Forces the force flag on', function() {
grunt.option('force', true);
});
シーケンスで残りのすべてのタスクに対して強制オプションがオンになっています。私は[この質問](http://stackoverflow.com/questions/16612495/continue-certain-tasks-in-grunt-even-if-one-fails/16972894#16972894)の答えに別のハックを持っています – explunit
Couldn 'あなたはちょうどgrunt.option( '力'、偽)を行います。タスクを実行した後に? –