Gulp监视任务不会在Ctrl C上退出

mou*_*ubi 8 javascript node.js reactjs gulp webpack

背景

我有这个gulp watch任务来处理sass编译:

import gulp from 'gulp';
import sass from 'gulp-sass';
import concat from 'gulp-concat';

gulp.task("compile-scss", () => {
  return gulp.src("assets/scss/**/*.scss")
    .pipe(sass({ outputStyle: 'compressed' })
    .on("error", sass.logError))
    .pipe(concat("style.css"))
    .pipe(gulp.dest("dist/css"));
});

gulp.task("watch-scss", ['compile-scss'], () => {
  gulp.watch("assets/scss/**/*.scss", ["compile-scss"]);
});
Run Code Online (Sandbox Code Playgroud)

我正在运行gulp watch-scss,该过程正确编译我的文件,并开始观察新的更改.

问题

当我想要观看停止时,我正在按下Ctrl+C终端,一切看起来都不错.

但后来我对.scss文件进行了更改,并期望它不会被gulp任务处理(应该已经停止).无论如何,这个更改由watch任务处理,因为它似乎仍在运行.

gulp进程终止尝试

查看终端代码,您可以看到我开始的位置gulp watch-scss,按下的位置Ctrl+C以及任务在更改时继续执行的位置.

环境细节

操作系统: OS X 10.11(El Capitan)
gulp版本: 3.9.1
节点版本: 6.2.2
babel-core版本: 6.11.4

历史

问题可能与Node本身有关.走向那个方向我尝试了几个解决方案,比如从吞咽中解决这个过程,如下所示:

process.on('SIGINT', function() {
  process.exit();
});
Run Code Online (Sandbox Code Playgroud)

它没有帮助.阅读有关该主题的大量信息,但没有任何帮助.以下是两个相关的问题,这些问题都没有帮助:

停止gulp监视任务?

终止gulp-watch任务

如果需要,我可以提供更多细节.

小智 -1

关闭终端,会话将终止。再次运行 gulp 并尝试 CTRL + C 是否有效。