方法'exec'在grunt任务中不起作用

时间:2014-07-08 05:55:54

标签: javascript node.js asynchronous gruntjs exec

我有一个在grunt配置中注册的任务:

grunt.registerTask('test_Branches',          'Run Branches check on windows',       require('PATH').check);

在我的branches.test.js中我有方法检查():

this.check = function () {
'use strict';
console.log("Execution started\n");
        exec('git for-each-ref --sort=-committerdate refs/remotes/origin/  --format='%(committername)', {cwd: currentDir}, function (error, stdout, stderr) {
            console.log('started 1.1');
            if (stderr) {
                console.log('stderr: ' + stderr + "\n");
            }
            else {
                console.log("Authors has been received\n");
            }
            if (error !== null) {
                console.log('Execution command error: ' + error + "\n");
            }
        });

};

但是当我尝试通过命令行执行我的任务时使用命令:

grunt test_Branches

我得到了:

C:\PATH>grunt test_Branches
Running "test_Branches" task
Execution started
Done, without errors.

我' exec'的问题是什么?方法

1 个答案:

答案 0 :(得分:0)

此问题的解决方案是使用grunt.task.current.async();进行异步功能。正如Jonathan Lonowski所说,here你可以找到细节。