定义"全球" Gulp中的行为(测量任务持续时间)

时间:2017-05-04 13:26:59

标签: ant gulp graphite statsd

我正努力将我们从ant移到gulp,并且作为我想要为Graphite编写时间统计数据的努力的一部分。我们也在ant中执行此操作(不知道如何,除此之外)。我的问题是,我更倾向于不必手动为我们拥有的每项任务添加一些或其他插件(我们有60多个),而是有某种全局行为,对于每项任务,在任务之前运行计时器是开始,当它表示完成时,我们将一些数据推送到Graphite(通过statsd)。

有人能指出我正确的方向在哪里勾住gulp吗?我在文档/食谱中找不到任何特别有用的东西......

我们正在运行gulp@4

1 个答案:

答案 0 :(得分:0)

您可以使用NPM gulp-duration包,而不是为众多任务添加计时代码。

下面显示了一个使用示例的片段:

function rebundle() {
 var uglifyTimer = duration('uglify time')
 var bundleTimer = duration('bundle time')

 return bundler.bundle()
   .pipe(source('bundle.js'))
   .pipe(bundleTimer)
   // start just before uglify recieves its first file 
   .once('data', uglifyTimer.start)
   .pipe(uglify())
   .pipe(uglifyTimer)
   .pipe(gulp.dest('example/'))
}

gulp-duration' duration功能:

  

创建新的传递持续时间流。当这个流是   关闭后,它会记录自创建以来的时间   终端

然后

将允许您记录任务的持续时间。

虽然这不是一个全局行为解决方案,但至少可以在gulp文件中指定时间码,而不必修改所有60多个任务。