7

我正在尝试使用grunt-contrib-lessgrunt-contrib-watch设置grunt-notify。一般来说,这运行良好,但当 grunt-less 成功执行时,我无法让 grunt-notify 通知我。

如果有人对如何设置或调试有任何见解,很高兴有任何意见。


完整信息:

我已经设置了 grunt-notify 以在 less 使用手表运行时触发。当较少的任务失败时,这很有效。给我一个很大的弹出错误:

图片

作为参考,这是控制台输出:

图片

当 less 成功时,我没有收到任何通知。我想收到通知,但不知道如何启用它。

这是 less 成功时的控制台输出:

图片

这是我正在使用的 GruntFile:

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']);

};

Github上的原始问题

4

2 回答 2

9

您需要为您的任务添加一条消息到 gruntfile 并指定它将为哪个任务提供该消息。见下文

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

作为参考,您可以在git repo 自述文件中看到它们的使用

为完整性添加:

正如 uKolka 在下面提到的,您还需要根据他的解决方案更新监视任务:

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

wherenotify:less引用了通知对象中的较少任务。

于 2014-09-25T15:19:45.853 回答
8

需要注意的是,指定通知任务...

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

...只是交易的一部分。

它还应该在您希望触发它的任务中注册。

因此,要使原始 OP 的代码正常工作

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

应该改为

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

这参考了notify:less前面提到的。

于 2014-10-19T23:16:05.937 回答