NodeJS:child_process.exec没有执行函数

时间:2014-06-19 18:01:01

标签: javascript node.js gruntjs child-process

我试图做一些我认为非常简单的事情 - 执行回声'使用child_process.exec的行。我的代码看起来像这样:

var exec = require('child_process').exec;

exec('echo "HELLO"', function (error, stdout, stderr) {
    console.log(error);
    console.log(stdout);
    console.log(stderr);
});

截至目前,回调从未被调用,回调也不会被调用。我在这里找不到什么东西?

另外,我在我正在制作的一项艰巨任务中使用了这些内容,因此我不确定是否有任何可以将其设置的内容(尽管这个插件似乎是在这里做得很好 - https://github.com/sindresorhus/grunt-shell/blob/master/tasks/shell.js

1 个答案:

答案 0 :(得分:2)

你的代码很好。

您遇到的问题可能与回调有关,如果您使用 child_process 的 execSync 它可能会起作用。

如果您想在 grunt 任务中保留带有回调的 exec 函数,请使用 this.async();

const done = this.async();
exec('echo "HELLO"', function (error, stdout, stderr) {
    console.log(error);
    console.log(stdout);
    console.log(stderr);
    done();
});

看看这里:https://gruntjs.com/api/inside-tasks