有没有办法配置一系列的任务,以使特定的后续的任务(我不想在整个批处理中强制执行)即使失败了也是如此?例如,考虑一个像这样的情况
我可以这样做: p>
grunt.registerTask('testTheTemp',['makeTempFiles','qunit','removeTempFiles']);但是如果qunit失败,那么removeTempFiles任务就不会运行。
解决方案以下是一种解决方法。这不太好,但它确实解决了这个问题。
您创建了两个额外的任务,您可以在任何需要继续执行的序列的开头/结尾打包,即使发生故障也是如此。检查 grunt.option('force')的现有值是否可以覆盖任何 - force
grunt.registerTask('usetheforce_on','强制强制选项on if需要',函数(){ if(!grunt.option('force')){ grunt.config.set('usetheforce_set',true); grunt .option('force',true); } }); grunt.registerTask('usetheforce_restore','如果我们之前已经设置过了,关闭强制选项', 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原生支持此功能。
Is there a way to configure a sequence of tasks so that specific subsequent ones (I don't want --force on the whole batch) run even if one fails? For example, consider a case like this
I can do this:
grunt.registerTask('testTheTemp', ['makeTempFiles', 'qunit', 'removeTempFiles']);But if qunit fails then the removeTempFiles task never runs.
解决方案Here's one workaround. It's not pretty, but it does solve the issue.
You create two extra tasks which you can wrap at the beginning/end of any sequence that you want to continue even over failure. The check for existing value of grunt.option('force') is so that you do not overwrite any --force passed from the command line.
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' ] );I've also submitted a feature request for Grunt to support this natively.
更多推荐
即使发生故障,也可以继续执行某些任务
发布评论