grunt-contrib-watch没有调用任务

时间:2016-09-27 05:59:15

标签: gruntjs grunt-contrib-watch

我的grunt-contrib-watch配置如下:

watch: {
    tasks: ['copyFiles'],
    js: {
        files: [
            path.join(__dirname, "../gscm-js/src/**/*.js"),
            path.join(__dirname, "../gscm-js/templates/**/*.*")]
    },
    options: {
        debounceDelay: 250,
    }
}

我的copyFiles任务看起来像这样;

grunt.registerTask('copyFiles', 'copy templates and js', function () {
    console.log('in copyFiles');
    var done = this.async();

    var sourceScripts = path.join(__dirname, "../gscm-js/src");
    var sourceTemplates = path.join(__dirname, "../gscm-js/templates");

    ncp(sourceScripts, scriptsDirectory, function () {
        ncp(sourceTemplates, templatesDirectory, done);
    });
});

即使监视任务输出文件已更改,也不会将日志消息输出到控制台。

1 个答案:

答案 0 :(得分:0)

grunt-contrib-watch是一个Grunt多任务,js是其多个任务之一的名称。

您需要将tasks配置设置移至js任务:

watch: {
    js: {
        files: [
            path.join(__dirname, "../gscm-js/src/**/*.js"),
            path.join(__dirname, "../gscm-js/templates/**/*.*")
        ],
        tasks: ['copyFiles']
    },
    options: {
        debounceDelay: 250
    }
}

options可以保持原样 - 它经过特殊处理,并在多个任务之间共享。