【问题标题】:Gulp watch task does't exit on Ctrl CGulp 监视任务不会在 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。 2
babel-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+CCtrl+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)

标签: javascript node.js reactjs gulp webpack


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多