我正努力将我们从ant
移到gulp
,并且作为我想要为Graphite编写时间统计数据的努力的一部分。我们也在ant
中执行此操作(不知道如何,除此之外)。我的问题是,我更倾向于不必手动为我们拥有的每项任务添加一些或其他插件(我们有60多个),而是有某种全局行为,对于每项任务,在任务之前运行计时器是开始,当它表示完成时,我们将一些数据推送到Graphite(通过statsd)。
有人能指出我正确的方向在哪里勾住gulp吗?我在文档/食谱中找不到任何特别有用的东西......
我们正在运行gulp@4
。
答案 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多个任务。