Gruntjs 全局grunt任务错误处理

Gruntjs 全局grunt任务错误处理,gruntjs,Gruntjs,Grunt将输出退出代码,这对于执行Grunt任务的脚本来说非常棒,但我希望能够在Grunt完成失败的Grunt任务后处理它们 我希望找到某种类型的错误处理函数,可以在initConfig中的某个地方设置,但我没有看到任何东西。同样,即使是“finally”函数也可以很好地工作 基本上,我有一个别名任务,它是我执行的一组任务,其中一个任务会临时更改文件的内容,我会在一切完成后将内容写回磁盘。我希望至少能够尝试将内容写回磁盘,即使变异后的任务失败 有这样的影响就好了 grunt.initConfi

Grunt将输出退出代码,这对于执行Grunt任务的脚本来说非常棒,但我希望能够在Grunt完成失败的Grunt任务后处理它们

我希望找到某种类型的错误处理函数,可以在initConfig中的某个地方设置,但我没有看到任何东西。同样,即使是“finally”函数也可以很好地工作

基本上,我有一个别名任务,它是我执行的一组任务,其中一个任务会临时更改文件的内容,我会在一切完成后将内容写回磁盘。我希望至少能够尝试将内容写回磁盘,即使变异后的任务失败

有这样的影响就好了

grunt.initConfig({
    onError: function (error) {
        // execute my file cleanup
    },

    // this is essentially a "finally" function that executes once grunt 
    // finishes with all tasks.
    onComplete: function () {
        // execute my file cleanup
    }
});

我很肯定,没有这样的功能。但这是一个普遍的要求:

现在能做些什么?您可以编写自定义grunt任务,如下所示:

var errorCb = function() { callback(); }
var doneCb = function() { callback(); }
grunt.initConfig({
    task_runner: {
        before: ...,
        beforeEach: ...,
        run: ['other_task1', 'other_task2'],
        after: ...,
        afterEach: ...,
        onError: errorCb,
        onComplete: doneCb
    },
    other_tasks: { ... }
});
并注册您的任务:

grunt.registerTask('task_runner', "Tasks' lifecycle", function(task, message) {
    // foreach task in tasks: grunt.task.run(task)
    ...
    // except(`grunt.util.error`)
});
正如我所知,没有什么好方法可以获得任务运行的结果。因此,这是一个好消息。可以钩住这些函数:和
grunt.log.error

这里有一些:。还有,看一看

总而言之,我不能说这是一项容易的任务。我希望有一天Grunt会有事件(到现在为止:“注意Grunt还没有发出任何事件,但在您自己的任务中仍然有用。”)

另外,你有没有考虑过为你的项目大口大口大口地喝一口

另外,如果你要写你的自定义任务,请随时向我请求帮助