如何在Gulp中使用stdout和stderr child_process

时间:2016-06-23 02:14:42

标签: python flask gulp child-process

我使用gulp和python flask。

var gulp = require('gulp');
var spawn = require('child_process').spawn;
var app = spawn('python', ['app.py']);

gulp.task('runserver', function() {
    app.stdout.on('data', (data) => {
        console.log(`stdout: ${data}`);
    });
    app.stderr.on('data', (data) => {
        console.log(`stderr: ${data}`);
    });
});

但是所有日志都会转到stderr。 如何将子进程的输出调整到控制台?

1 个答案:

答案 0 :(得分:0)

由于您处于Node环境中,您可以通过以下方式使用stdout和stderr

app.stdin.on('readable', () => {
    var chunk = process.stdin.read();

    if (chunk !== null) {
        process.stdout.write(`data: ${chunk}`);
    }
});
app.stdout.write(`${msg}\n`);

流程对象是一个全局流程,它提供有关当前Node.js流程的信息并对其进行控制。作为一个全局,它始终可用于Node.js应用程序而不使用require()。

您可以参考以下链接: