【问题标题】:Error write after end on gulp.watch with gulp-connect使用 gulp-connect 在 gulp.watch 上结束后写入错误
【发布时间】:2016-11-15 15:31:55
【问题描述】:

我对 gulp 有一个简单的监视,当其中一个文件发生更改时,它会重新加载所有 js 文件(使用 gulp-connect),但是每当相关任务运行时,我都会收到以下错误:

[15:14:35] Starting 'livereload:js'...
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: write after end
    at ServerResponse.OutgoingMessage.write (_http_outgoing.js:439:15)
    at ServerResponse.res.inject.res.write (C:\dev\test-livereload\node_modules\connect-livereload\index.js:115:37)
    at ReadStream.ondata (_stream_readable.js:555:20)
    at emitOne (events.js:96:13)
    at ReadStream.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at ReadStream.Readable.push (_stream_readable.js:134:10)
    at onread (fs.js:1984:12)
    at FSReqWrap.wrapper [as oncomplete] (fs.js:681:17)

代码如下:

gulp.task('livereload:js', function() {
  return gulp.src([paths.APP_ROOT + '/**/*.js'])
    //.pipe(wait(2000))  // if I add a small wait it doesn't crash as often
    .pipe(connect.reload());
});

gulp.task('run-watch', function() {
  gulp.watch([paths.APP_ROOT + '/**/*.js'], ['livereload:js']);
});

我有一个类似的任务,检查 scss 文件中的更改并在重新加载之前对其进行编译,效果很好。

【问题讨论】:

  • 我无法重现错误,你能告诉我 whole gulpfile.js

标签: gulp gulp-watch gulp-connect


【解决方案1】:

我找到了解决方法。我使用 gulp-watch 包而不是 gulp.watch 来运行 connect.reload(),它可以在管道中使用。

我认为在文件准备好之前触发了重新加载的竞争条件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 2018-09-23
    • 2017-01-08
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    相关资源
    最近更新 更多