2016-11-15 3 views
0

gulp에 간단한 시계가 있는데, gulp를 사용하여 모든 js 파일을 다시로드합니다 (gulp-connect 사용). 변경 사항이있을 때마다 다음 오류가 표시됩니다.gulp.watch가 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']); 
}); 

내가하는 SCS 파일의 변화를 확인하고 잘 작동 탄약을 컴파일 유사한 작업이 작업은 실행을 asociated.

+0

오류를 재현 할 수 없습니다. ** 전체 ** gulpfile.js를 보여줄 수 있습니까? – aristotll

답변

0

해결 방법이 있습니다. gulp.watch 대신 gulp-watch 패키지를 사용하여 파이프에 사용할 수있는 connect.reload()을 실행합니다.

파일이 준비되기 전에 다시로드를 트리거하는 경쟁 조건이 있다고 생각합니다.