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


gulp怎么按順序執行任務,

1、每個任務添加依賴任務

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

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

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

每個任務添加依賴任務:

// 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插件的寫法:

// --------由於篇幅原因此處省略了多個任務--------

// 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'
    )
);

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM