Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

grunt-notify: Doesn't trigger on success

I am attempting to setup grunt-notify with grunt-contrib-less and grunt-contrib-watch. Generally this is working well but I can't get grunt-notify to notify me when grunt-less is executed successfully.

If anyone has any insight on how to set this up or debug, happy to have any input.


Full info:

I have setup grunt-notify to trigger whenever less has run using a watch. This works great when the less task fails. Gives me a great pop-up error:

image

For reference this is the console output:

image

When less succeeds, I am not getting any notification. I would like to get a notification but cannot figure out how to enable this.

This is the console output when less succeeds:

image

This is the GruntFile that I am using:

module.exports = function(grunt) {

    grunt.initConfig({

        less: {
            development: {
                options: {
                    compress: true
                },
                files: {
                    "FILE.css": "FILE2.less"
                }
            }
        },

        watch: {
            less: {
                files: '**/*.less',
                tasks: ['less', 'notify_hooks']
            }
        },


        notify_hooks: {
            options: {
                message: "MESSAGE"
            }

        }


    });

    grunt.loadNpmTasks('grunt-contrib-less');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-notify');

    grunt.registerTask("default", ['less']);

};

Original question on Github

like image 811
sixtyfootersdude Avatar asked Sep 25 '14 15:09

sixtyfootersdude


1 Answers

You need to add a message for your task to the gruntfile and specify which task it is going to give that message for. See below

notify: {
    less:{
        options:{
            title: "CSS Files built",
            message: "Less task complete"
        }
    }
}

For reference you can see them use in the git repo readme

Added for completeness:

As uKolka has mentioned below, you will also require the watch task to be updated as per his solution:

watch: {
    less: {
        files: '**/*.less',
        tasks: ['less', 'notify:less']
    }
},

Where notify:less references the less task within the notifiy object.

like image 105
DavidT Avatar answered Sep 28 '22 20:09

DavidT