我试图做一些我认为非常简单的事情 - 执行回声'使用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)
答案 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();
});