ここに 1 つの回避策があります。きれいではありませんが、問題は解決します。
失敗しても続行したいシーケンスの最初/最後にラップできる 2 つの追加タスクを作成します。の既存の値をチェックするのは、コマンド ラインから渡された値をgrunt.option('force')
上書きしないようにするためです。--force
grunt.registerTask('usetheforce_on',
'force the force option on if needed',
function() {
if ( !grunt.option( 'force' ) ) {
grunt.config.set('usetheforce_set', true);
grunt.option( 'force', true );
}
});
grunt.registerTask('usetheforce_restore',
'turn force option off if we have previously set it',
function() {
if ( grunt.config.get('usetheforce_set') ) {
grunt.option( 'force', false );
}
});
grunt.registerTask( 'myspecialsequence', [
'usetheforce_on',
'task_that_might_fail_and_we_do_not_care',
'another_task',
'usetheforce_restore',
'qunit',
'task_that_should_not_run_after_failed_unit_tests'
] );
また、これをネイティブにサポートするために、Gruntの機能リクエストも送信しました。