grunt-timer

Times the duration of each of your grunt tasks automatically and outputs the execution time in milliseconds to the console after each task (or optionally, at the end). It also logs the total time for all logged tasks.

grunt-timer

grunt-timer.js times the duration of each of your grunt tasks automatically and outputs the execution time in milliseconds to the console after each task. It also logs the total time for all logged tasks at the end.

npm install grunt-timer ## --save-dev

Add the grunt-timer reference to the very top of your Gruntfile.js:

var timer = require("grunt-timer");

Add the timer init call at the top of the module.exports function:

module.exports = function (grunt) {
    timer.init(grunt);
Running "run:500" (run) task
500ms task ran
Task 'run:500' took 502ms
All tasks took 502ms

To use any option, pass an object parameter to your initialise function like so:

module.exports = function (grunt) {
    timer.init(grunt, { deferLogs: true, friendlyTime: true, color: "blue" });
 

If you'd prefer to see a summary of all your task timings at the end of the grunt process, enable this option.

This is useful for the case where you have many grunt tasks, or they generate a lot of output while they are running, and it might be tedious to scroll back through the console to find all the timing messages.

Behaves like deferLogs but will also do the default inline logging.

This is useful if you want the summary (deferLogs) but a build could timeout, which would means there could be no grunt timer logs.

Enable this if you'd prefer to see the durations reported in a friendly hours/minutes/seconds format, instead of ms.

Task 'jshint:all' took 3 seconds

Enable this if you'd prefer to only see the time all tasks took to complete.

This is useful for having many small, insignificant tasks that would generate considerable output even with deferLogs.

All tasks took 502ms

If supplied, will override default purple for console output.

No color will be output if the grunt --no-color option is specified.

Array of task aliases to ignore. e.g to stop grunt-timer running with the default task:

module.exports = function (grunt) {
    timer.init(grunt, { ignoreAlias: ["default"] });
 
  • The last task duration is output after the "Done, without errors". This is due to the way the hooking for the task name change works.

MIT License