2016-11-03 1 views
0

Usecase: В больших проектах может быть приятно разделить небольшие проекты на собственные папки с помощью собственного процесса сборки.Формат выходного процесса, вызванного процессом вскрытия, как родительский процесс

Следующая настройка в основном работает как с окнами, так и с mac - я получаю результат процесса дочернего процесса gulp, зарегистрированного в консоли - проблема только в том, что он не покрашен как выход родительского процесса.

var spawnCmd = require('spawn-cmd'); 

gulp.task('default', function() { 
    // Run all the parent projects tasks first 
    // .... 
    // .... 
    // .... 

    // When done, cd to child directory 
    process.chdir('./some-dir-that-has-a-gulpfile'); 

    // Run `gulp` in the child directory 
    var child = spawnCmd.spawn('gulp', ['default']); 

    // And pipe the output to the current process 
    child.stdout.pipe(process.stdout); 
}); 

Мой вопрос заключается в том, чтобы отобразить результат процесса глотка ребенка точно так же, как и обычный процесс глотка.

Edit: Дубликат Is it possible for child processes in Node.js to preserve colored output?

ответ

2

Вы должны наследовать STDIO родительского процесса. Это правильно выводит вывод на тот же выход, с цветами и всеми.

Поскольку вы используете gulp, вы также должны добавить флаг --color always, чтобы глоток правильно обнаружил, что вы хотите цвета.

var spawnCmd = require('spawn-cmd'); 

gulp.task('default', function() { 
    // When done, cd to child directory 
    process.chdir('./some-dir-that-has-a-gulpfile'); 

    // Run `gulp` in the child directory 
    var child = spawnCmd.spawn('gulp', ['default', '--color', 'always'], {stdio: 'inherit'}); 
}); 
+1

Это прекрасно работало как на окнах, так и на маках. Благодаря! –