【发布时间】:2016-08-25 16:54:48
【问题描述】:
我目前有三个 gulp 任务,利用 gulp-watch。它们本质上是基本的,并且被表示(简化)......
var gulp = require('gulp');
var watch = require('gulp-watch');
gulp.task('watch:a', function() {
return watch('a/**/*.js', function () {
// [...]
});
});
gulp.task('watch:b', function() {
return watch('b/**/*.js', function () {
// [...]
});
});
gulp.task('watch:c', function() {
return watch('c/**/*.js', function () {
// [...]
});
});
但是,按照我目前的工作流程,我不得不打开三个终端,然后分别将它们关闭。
有没有办法让我拥有一个 gulp 任务,它会生成三个单独的终端窗口,每个任务都在运行?我研究了child process,但无法制定解决方案。理想情况下,我正在想象这样的事情......
gulp.task('watch', function() {
launchProcess('gulp watch:a');
launchProcess('gulp watch:b');
launchProcess('gulp watch:c');
});
launchProcess 有一些魔力,所以我可以将它们整合到一个命令中。我只是在这里寻找方便,因为可能有三个以上的进程。一想到要手动关闭大量这些过程,我就感到畏缩。
这是我最初的尝试,取自 Answer: Gulp – How Can I Open A New Tab In Terminal?,但这(只是试图解雇一个观察者)并没有让我的观察者任务按预期工作 - 文件更改没有任何反应。
var exec = require('child_process').exec;
gulp.task('watch', function(cb) {
exec('gulp watch:a', function (err, stdout, stderr) {
console.log(stdout);
console.log(stderr);
cb(err);
});
});
【问题讨论】:
标签: javascript node.js gulp gulp-watch