gulp怎麼按順序執行任務 使用了gulp-sequence仍是不能控制執行順序

gulp怎麼按順序執行任務,javascript

一、每一個任務添加依賴任務css

二、使用gulp-sequence插件,插件的使用參考:https://github.com/teambition/gulp-sequencehtml

解決這個問題時碰到一個坑:gulp任務是異步的,task寫法上能夠省略return,但在須要同步執行任務時,這個return是不能省略的。java

不知道這個知識點,讓我浪費了整整一天時間。。。git

每一個任務添加依賴任務:github

// webappRest
gulp.task('webappRest', ['clearBuild'],function(){
    // 這個return不能省略的
    return gulp.src([ 
        inputSrcApp+'**/*',
        '!'+inputSrcApp+'**/*.{css,html,js,jsp}'
    ])
        .pipe(gulp.dest('./build/'))
});

// clearBuild 清除build目錄
gulp.task('clearBuild',function(){
    return gulp.src('build',{read: false})
        .pipe(clean())
});

// clearRev 清除rev(js與css映射表)目錄
gulp.task('clearRev',['webappRest'],function(){
    return gulp.src('build/rev',{read: false})
        .pipe(clean())
});

//執行default任務就能夠實現:按clearBuild,webappRest,clearRev的順序來同步執行
gulp.task('default',['clearRev');

使用gulp-sequence插件的寫法:web

// --------因爲篇幅緣由此處省略了多個任務--------

// webappRest
gulp.task('webappRest', function(){
    return gulp.src([
        inputSrcApp+'**/*',
        '!'+inputSrcApp+'**/*.{css,html,js,jsp}'
    ])
        .pipe(gulp.dest('./build/'))
});

// clearBuild 清除build目錄
gulp.task('clearBuild',function(){
    return gulp.src('build',{read: false})
        .pipe(clean())
});

// clearRev 清除rev(js與css映射表)目錄
gulp.task('clearRev',function(){
    return gulp.src('build/rev',{read: false})
        .pipe(clean())
});

//每一個同步執行的任務組用[]包起來,用逗號隔開
//[]裏面的任務將會異步執行
var gulpSequence = require('gulp-sequence');
gulp.task('buildoverlays',
    gulpSequence(
        ['overlaysRestJs','overlaysRestCss'],
        ['overlaysLib','overlaysRestOther'],
        'overlaysHtml'
    )
);
相關文章
相關標籤/搜索