这里我没有输出,命令永远运行:
grunt.registerTask('serve', function () {
var done = this.async();
grunt.util.spawn({
cmd: 'jekyll',
args: ['serve'],
stdio: 'inherit'
}, function (err, res, exit_code) {
res.stdout && console.info(res.stdout);
exit_code && console.error(res.stderr);
done(err);
});
});
我想输出(并且命令一直运行直到出错或中断)。
答案 0 :(得分:1)
试试这个:
grunt.registerTask('serve', function(){
var done = this.async();
var child = grunt.util.spawn({
cmd: 'jekyll',
args: ['serve']
}, function(){
...
});
child.stdout.pipe(process.stdout);
child.stderr.pipe(process.stderr);
});
答案 1 :(得分:1)
感谢你的回答,@ Lihau-Tan接近了正确的答案。
将这个答案与我的尝试相结合,我想出了这个解决方案:
grunt.registerTask('serve', function () {
var child = grunt.util.spawn({
cmd: 'jekyll',
args: ['serve', '-P', process.env.PORT || 4001],
stdio: 'inherit'
}, this.async());
child.stdout.pipe(process.stdout);
child.stderr.pipe(process.stderr);
});
答案 2 :(得分:0)
您可以使用grunt log
以下可用功能
grunt.log.write(msg)
grunt.log.writeln([msg])
grunt.log.error([msg])
grunt.log.errorlns(msg)
grunt.log.ok([msg])
grunt.log.oklns(msg)
grunt.log.subhead(msg)
grunt.log.writeflags(obj, prefix)
grunt.log.debug(msg)