关于gulp任务依赖

时间:2015-12-03 16:31:36

标签: gulp

我写gulpfile.js喜欢:

...

gulp.task('styles',function(){
  gulp.src('./src/sass/*.scss')
    .pipe(sass())
    .pipe(autoprefixer('last 2 version'))
    .pipe(concat('tmp.css'))
    .pipe(gulp.dest('./build/css'))
    .pipe(notify('Styles task complete'))
})

gulp.task('css',['styles'],function(cb){
  del(['./build/css/tmp.css'],cb)
})
.....

当我运行gulp css时,styles任务将首先执行,因此./build/css/tmp.css将被删除。

但是./build/css/tmp.css仍然存在。这意味着,当执行css任务时,styles任务尚未执行。

为什么依赖不起作用?如何在执行'./build/css/tmp.css'任务之前确保css存在?

1 个答案:

答案 0 :(得分:1)

我已经看到这个问题间歇性地工作而没有依赖项的返回。

您需要返回实际任务,以便gulp知道它何时完成。

所以这应该成为:

gulp.task('styles',function(){
  return gulp.src('./src/sass/*.scss')
    .pipe(sass())
    .pipe(autoprefixer('last 2 version'))
    .pipe(concat('tmp.css'))
    .pipe(gulp.dest('./build/css'))
    .pipe(notify('Styles task complete'))
});

gulp.task('css',['styles'],function(cb){
  del(['./build/css/tmp.css'],cb)
})

然后等待样式完成(作为依赖项返回),然后继续。