grunt-notify: 在成功时没有触发通知

7
我正在尝试使用grunt-notify配合grunt-contrib-lessgrunt-contrib-watch进行设置。总体来说,这个设置很好用,但是当grunt-less成功执行时,我无法得到grunt-notify的通知。
如果有人对如何设置或调试有任何见解,欢迎提供任何意见。

完整信息:

我已经设置了grunt-notify,以便在使用观察时运行less时触发。当less任务失败时,这非常有效。它会给我一个很棒的弹出错误提示:

image

供参考,这是控制台输出:

image

当 less 成功时,我没有收到任何通知。我想要收到通知,但是不知道如何启用它。
这是 less 成功时的控制台输出:

image

这是我使用的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上的原始问题

2个回答

9
您需要在gruntfile中添加一条消息,并指定该消息所属的任务。请参见下面的示例:
notify: {
    less:{
        options:{
            title: "CSS Files built",
            message: "Less task complete"
        }
    }
}

供参考,您可以在git仓库的自述文件中看到它们的使用方法。

补充一下:

正如uKolka在下面提到的那样,您还需要按照他的解决方案更新watch任务:

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

notify:less 是指在 notify 对象中引用 less 任务。


谢谢!我发誓昨天我试过了,但是没有成功。不过现在可以了,所以谢谢!五分钟后我会接受这个答案作为被采纳的答案(一旦允许)。 - sixtyfootersdude

8
请注意,指定通知任务的新 API 仅支持 Android O 及更高版本。在早期版本的 Android 中,应用程序需要使用旧版的 NotificationCompat 类以向后兼容。
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

这个答案提供了真正的解决方案,可以帮助大多数人正确配置事物。 - Ikon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接