Gulp 监视任务不会在 Ctrl C 上退出
Posted
技术标签:
【中文标题】Gulp 监视任务不会在 Ctrl C 上退出【英文标题】:Gulp watch task does't exit on Ctrl C 【发布时间】:2017-02-06 01:49:17 【问题描述】:背景
我有这个 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"]);
);
然后我运行gulp watch-scss
,该过程正确编译我的文件并开始观察新的变化。
问题
当我想停止观看时,我在终端中按 Ctrl+C
,一切看起来都正常。
然后我在.scss
文件中进行了更改,并希望它不会被 gulp 任务处理(应该已经停止)。无论如何,此更改由 watch 任务处理,因为它似乎仍在运行。
查看终端代码,您可以看到我从哪里开始 gulp watch-scss
,我在哪里按 Ctrl+C
以及任务在哪里继续执行更改。
环境详情
操作系统: OS X 10.11 (El Capitan)gulp 版本: 3.9.1节点版本: 6.2。 2babel-core 版本: 6.11.4
历史
问题可能与 Node 本身有关。朝着这个方向前进,我尝试了几种解决方案,例如从 gulp 中终止进程,如下所示:
process.on('SIGINT', function()
process.exit();
);
它没有帮助。 阅读有关该主题的大量信息,但没有任何帮助。以下是两个相关的问题,但也无济于事:
Stop a gulp watch task?
Terminate gulp-watch task
如果需要,我可以提供更多详细信息。
【问题讨论】:
暂停进程时会发生什么?你能Ctrl+Z
然后通过使用ps T
查找进程ID 来杀死停止的进程吗?
按两次Ctrl-c
会退出吗?
另外,用 node 的 LTS 版本 (4.4.0) 试试这个
@MarcoS 做Ctrl-C
两次没有帮助。 @EliranMalka 我尝试做Ctrl+Z
,然后成功终止了该进程。问题是这不是一个长期的解决方案。我想让Ctrl+C
或Ctrl+Z
工作。 有趣的事情: 当我执行Ctrl+Z
时,我收到此错误throw er; // Unhandled 'error' event ^ Error: read EIO at exports._errnoException (util.js:1007:11) at TTY.onread (net.js:563:26)
【参考方案1】:
关闭终端,会话将终止。再次运行 gulp 并尝试 CTRL + C 是否有效。
【讨论】:
以上是关于Gulp 监视任务不会在 Ctrl C 上退出的主要内容,如果未能解决你的问题,请参考以下文章