我正在运行gulp 3.6.2,并具有从在线示例中设置的以下任务
gulp.task('watch', ['default'], function () {
gulp.watch([
'views/**/*.html',
'public/**/*.js',
'public/**/*.css'
], function (event) {
return gulp.src(event.path)
.pipe(refresh(lrserver));
});
gulp.watch(['./app/**/*.coffee'],['scripts']);
gulp.watch('./app/**/*.scss',['scss']);
});
每当我的CoffeeScript gulp手表出现错误时,手表就会停止-显然不是我想要的。
正如其他地方推荐的那样
gulp.watch(['./app/**/*.coffee'],['scripts']).on('error', swallowError);
gulp.watch('./app/**/*.scss',['scss']).on('error', swallowError);
function swallowError (error) { error.end(); }
但它似乎不起作用。
我究竟做错了什么?
响应@Aperçu的回答,我修改了swallowError
方法并尝试了以下操作:
gulp.task('scripts', function () {
gulp.src('./app/script/*.coffee')
.pipe(coffee({ bare: true }))
.pipe(gulp.dest('./public/js'))
.on('error', swallowError);
});
重新启动,然后在我的coffee文件中创建语法错误。相同的问题:
[gulp] Finished 'scripts' after 306 μs
stream.js:94
throw er; // Unhandled stream error in pipe.
^
Error: W:\bariokart\app\script\trishell.coffee:5:1: error: unexpected *
*
^
at Stream.modifyFile (W:\bariokart\node_modules\gulp-coffee\index.js:37:33)
at Stream.stream.write (W:\bariokart\node_modules\gulp-coffee\node_modules\event-stream\node_modules\through\index.js:26:11)
at Stream.ondata (stream.js:51:26)
at Stream.EventEmitter.emit (events.js:95:17)
at queueData (W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\map-stream\index.js:43:21)
at next (W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\map-stream\index.js:71:7)
at W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\map-stream\index.js:85:7
at W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\lib\src\bufferFile.js:8:5
at fs.js:266:14
at W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\graceful-fs\graceful-fs.js:104:5
at Object.oncomplete (fs.js:107:15)
您的swallowError
函数应如下所示:
function swallowError (error) {
// If you want details of the error in the console
console.log(error.toString())
this.emit('end')
}
我认为您必须error
在任务下降而不是watch
任务下降时绑定此函数,因为这不是问题所在,因此应在每个可能失败的任务上设置此错误回调,例如当您遇到故障时插件会中断错过了一个;
或其他东西,以防止watch
任务停止。
例子 :
gulp.task('all', function () {
gulp.src('./app/script/*.coffee')
.pipe(coffee({ bare: true }))
.on('error', swallowError)
.pipe(gulp.dest('./public/js'))
gulp.src('css/*.scss')
.pipe(sass({ compass: true }))
.on('error', swallowError)
.pipe(cssmin())
.pipe(gulp.dest('dist'))
})
或者,如果您不介意包含另一个模块,则可以使用 gulp-util 的
log 函数,以防止您在自己的函数中声明其他函数: gulpfile
.on('error', gutil.log)
但我建议您看一下很棒的 gulp-plumber
插件,该插件用于删除事件的onerror
处理程序error
,从而导致流中断。它非常简单易用,可阻止您捕获所有可能失败的任务。
gulp.src('./app/script/*.coffee')
.pipe(plumber())
.pipe(coffee({ bare: true }))
.pipe(gulp.dest('./public/js'))
有关插件的创建者在本文上提供了有关此内容的更多信息。
问题内容: 从TABLE布局切换到DIV布局以来,一个普遍的问题仍然存在: 问题 :您用动态文本填充DIV,并且不可避免地会有一个超长单词延伸到div列的边缘,使您的网站看起来不专业。 复古 :这 从未 发生过表布局。一个表格单元格总是可以很好地扩展到最长单词的宽度。 严重性 :我什至在大多数主要站点上都 遇到了 这个问题,尤其是在德国站点上,这些站点甚至连“限速”之类的通用词都非常长(“ Ges
问题内容: 如果我有一个,并且用户输入了一个国际化域名,则Angular_(编辑:除了不是Angular的错,会_自动将值转换为punycode,这是一个不错的功能,但如果值将显示回给他们。例如 变成 当后端需要该域的原始Unicode版本时,它也会引起问题,而Angular应用会发送punycode版本。 我可以使用例如punycode.js将其转换回去,但是有没有一种方法可以在Angular中
问题内容: 我知道Go中没有析构函数,因为从技术上讲没有类。这样,我用来执行与构造函数相同的功能。但是,有没有办法在终止的情况下创建某些东西来模仿析构函数,例如使用关闭文件?现在,我只是打电话给我,但这有点荒唐,我认为设计很差。正确的方法是什么? 问题答案: 在Go生态系统中,存在一种处理包装了宝贵(和/或外部)资源的对象的惯用语:一种专门用于释放该资源的特殊方法,通常通过该机制进行 显式 调用。
-IV是相同的,因为目前它是静态变量,用于测试目的。 -密码设置为AES/CBC/PKCS5Padding -键设置为AES 编辑 添加IV发生器方法
SLF4J:未能加载类“org.slf4j.impl.StatibloggerBinder”。 SLF4J:默认为无操作(NOP)记录器实现 SLF4J:有关更多细节,请参见http://www.slf4j.org/codes.html#staticloggerbinder。 这里是main
在开始利用Tomcat的“版本”功能时,我发现当Tomcat卸载以前版本的war文件时,Spring似乎也在破坏连接池。这是一个问题,因为该应用程序的其他(较新)版本需要该连接池 我如何防止这种情况? 脚本: 部署~/tomcat/webapps/helloworld##v1.war并启动tomcat HikariCP池正确初始化 用户登录 通过Tomcat Manager和Cargo部署新版本(