我正在尝试使用
child_process.spawn
在gulp任务中运行shell命令。我需要检测任务何时完成,所以我使用stdout
来检查特定的字符串,该字符串在命令结束时被发出,但出于某种原因,它似乎没有被发出:// gulp 3.9.1
var gulp = require('gulp');
var spawn = require('child_process').spawn;
gulp.task('my-task', function(cb) {
var command = ''; // construct my shell command here
var end = 'end_of_command';
var command = command + '; echo ' + end; // add special string to look for
var cmd = spawn(command, { shell: true });
cmd.stdout.on('data', function(data) {
if (data.includes(end)) {
return cb();
}
});
});
由于某些原因,我的回声语句没有发出,因此if语句没有被通过。
我错在哪里了?
我还应该注意的是,当我直接在我的shell中运行这个命令而不是通过gulp任务运行时,它可以正常运行,并且预期的输出是可见的。