gulp 咖啡手表永远不会出错
gulp coffee watch never finishes on error
我有一个看起来像这样的任务:
gulp.task 'scripts', () ->
gulp.src(path.scripts)
.pipe(coffee({bare: true}).on 'error', gutil.log)
.pipe(concat 'app.min.js')
.pipe(size())
.pipe(gulp.dest 'public/js')
我的手表是这样的:
gulp.task 'watch', () ->
gulp.watch path.scripts, ['scripts']
只要我不尝试编译任何错误,手表就可以正常工作。如果我有错误,在我看来手表仍然 运行 但毫无价值地等待着什么。
如果没有错误,我会得到这样的信息:
[18:02:47] Starting 'scripts'...
[18:02:47] all files 1.05 kB
[18:02:47] Finished 'scripts' after 17 ms
但如果是一个错误,我只是吞下它:
[18:03:33] Starting 'scripts'...
它永远不会结束,手表不再工作,即使控制台认为它是 运行。建议?
为了能够在出错后继续执行,您需要发出 'end' 事件。试试这个:
gulp.task 'scripts', () ->
gulp.src(path.scripts)
.pipe(
coffee({bare: true})
.on 'error', (err) ->
gutil.log err
@emit 'end'
)
.pipe(concat 'app.min.js')
.pipe(size())
.pipe(gulp.dest 'public/js')
我有一个看起来像这样的任务:
gulp.task 'scripts', () ->
gulp.src(path.scripts)
.pipe(coffee({bare: true}).on 'error', gutil.log)
.pipe(concat 'app.min.js')
.pipe(size())
.pipe(gulp.dest 'public/js')
我的手表是这样的:
gulp.task 'watch', () ->
gulp.watch path.scripts, ['scripts']
只要我不尝试编译任何错误,手表就可以正常工作。如果我有错误,在我看来手表仍然 运行 但毫无价值地等待着什么。
如果没有错误,我会得到这样的信息:
[18:02:47] Starting 'scripts'...
[18:02:47] all files 1.05 kB
[18:02:47] Finished 'scripts' after 17 ms
但如果是一个错误,我只是吞下它:
[18:03:33] Starting 'scripts'...
它永远不会结束,手表不再工作,即使控制台认为它是 运行。建议?
为了能够在出错后继续执行,您需要发出 'end' 事件。试试这个:
gulp.task 'scripts', () ->
gulp.src(path.scripts)
.pipe(
coffee({bare: true})
.on 'error', (err) ->
gutil.log err
@emit 'end'
)
.pipe(concat 'app.min.js')
.pipe(size())
.pipe(gulp.dest 'public/js')