gulp清除文件后不继续执行其他任务

查看:199
本文介绍了gulp清除文件后不继续执行其他任务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

使用gulp打造一个自动化的前端项目,如下代码:

//导入你所需要用的工具包 require('node_modules里对应模块')
var gulp = require('gulp'),
    sass = require('gulp-sass'),
    del  = require('del');

// sass 任务
gulp.task('sass',function(){
    gulp.src('./src/sass/*.scss')      //获取该任务需要的文件
        .pipe(sass())                  //该任务调用的模块
        .pipe(gulp.dest('./dist/css')) 
})

// 默认任务
gulp.task('default',['clean'],function(){
  gulp.start('sass','watch1');
})

// clean任务:
gulp.task('clean',function(cb){
  del(['./dist'],cb)
})

//监听文件
gulp.task('watch1',function(){
    return gulp.watch('./src/sass/*.scss',['sass']);
    //监听 ./src/sass/*.scss 文件,修改时自动执行 sass 任务。
});

执行gulp命令后,并不是执行默认任务,而只是执行clean清除任务,将dist文件夹给删除,然后就结束了,sass/watch1任务并不会执行。
需要再次输入gulp sassgulp watch1才会执行相应的任务。

问题:

gulp.task('default',['clean'],function(){
  gulp.start('sass','watch1');
})

这段代码不是执行默认任务,即先执行clean任务后,再继续执行sass/watch1任务吗?
怎么执行不了呢?

解决方案

改:

//导入你所需要用的工具包 require('node_modules里对应模块')
var gulp = require('gulp'),
    sass = require('gulp-sass'),
    del  = require('del');

// sass 任务
gulp.task('sass', ['clean'], function(){
    return gulp.src('./src/sass/*.scss')      //获取该任务需要的文件
        .pipe(sass())                  //该任务调用的模块
        .pipe(gulp.dest('./dist/css')) 
})

// 默认任务
gulp.task('default',['sass', 'watch1'],function(){

})

// clean任务:
gulp.task('clean',function(cb){
  return del(['./dist']);
})

//监听文件
gulp.task('watch1', ['clean'], function(){
    return gulp.watch('./src/sass/*.scss',['sass']);
    //监听 ./src/sass/*.scss 文件,修改时自动执行 sass 任务。
});

这篇关于gulp清除文件后不继续执行其他任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆