Last Updated: February 25, 2016
·
6.914K
· denisonluz

Creating a '--force' task in Grunt

Sometimes you might need to use '--force' with Grunt when building or testing your app .
If you use this option like this for example "grunt server --force", the --force option will be applied to all Grunt tasks.

But normally you would like to apply the '--force' option for some grunt tasks but leave other tasks in the sequence without the '--force' option.

The way I do this is 'wrapping' the task I want to use '--force' between two other tasks that will set the '--force' option ON and OFF.

Here it is the code:

grunt.registerTask('forceOn', 'turns the --force option ON',
    function() {
      if ( !grunt.option( 'force' ) ) {
        grunt.config.set('forceStatus', true);
        grunt.option( 'force', true );
      }
    });

  grunt.registerTask('forceOff', 'turns the --force option Off',
    function() {
      if ( grunt.config.get('forceStatus') ) {
        grunt.option( 'force', false );
      }
    });

You can then wrap the task you want to use '--force' with these two tasks, like this:

grunt.task.run([
  'clean:server',
  'replace',
  'forceOn',  <-- turn the --force ON
  'concurrent:server',  <-- this task will use the --force option 
  'forceOff', <-- turn the --force OFF
  'connect:livereload', <-- all the remaining tasks won't use --force
  'open',
  'watch'
 ]);

1 Response
Add your response

exactly what i searched for! thanks!

over 1 year ago ·

Have a fresh tip? Share with Coderwall community!

Post
Post a tip
Did you know?

JavaScript on a page runs with the privileges of that origin. One altered library, tag manager, or snippet can read inputs, change what people see, and call your APIs as the user.

Security insights from Cside