grunt-task-hook

1.0.1 • Public • Published

grunt-task-hook

Forked from grunt-task-hooker. Support display hookTask() details and source in verbose mode.

NPM Version

Add pre-execution and post-execution "hooks" to grunt task, see issues/542.

Install

npm install grunt-task-hook --save-dev

Usage

// Gruntfile.js
module.exports = function (grunt) {

  // Don't forget to pass "grunt" object into the function!!!
  require('grunt-task-hook')(grunt);

  grunt.initConfig({
    clean: {
      src: {},
      dist: {}
    }
  });

  grunt.registerTask('build', [...]);

  // pre hook without description
  grunt.hookTask('build', 'clean:dist');

  // pre hook multi task
  grunt.hookTask(['build', 'dev'], 'clean:dist');

  // post hook with description
  grunt.hookTask('clean:src', 'post clean src', function() {
    const done = this.async();
    setTimeout(function() {
      done();
    }, false);
  }, true);

  // hook multi-type task
  grunt.hookTask('clean', 'pre clean all', function() {
    console.log('do something before all clean tasks');
  });

  // hook replace task
  grunt.hookTask('clean', 'ignore task clean', function() {
    console.log('replace original clean task');
  }, 'replace');

  // grunt.hookTask(taskName, desc, task, where);
  // where:
  // undefined/false => pre
  // true => post
  // pre/post/replace

  // unhook all hooks
  grunt.unhookTask('clean');

  // unhook multi hooks
  grunt.unhookTask(['clean', 'build']);

  // unhook all pre hooks
  grunt.unhookTask('build', 'pre');

  // unhook all post hooks
  grunt.unhookTask('build', 'post');
};

License

The MIT License (MIT)

Dependents (0)

Package Sidebar

Install

npm i grunt-task-hook

Weekly Downloads

0

Version

1.0.1

License

MIT

Unpacked Size

9.3 kB

Total Files

5

Last publish

Collaborators

  • shiftj