Gulp synchronous task problem

I am trying to put together the 3 tasks required to debug in 1. Of course, since the nature of gulp is asynchronous, I have problems with this. So I searched and found a way to use the run sequence module to solve this problem. I tried the following code but it doesn't seem to work as expected. It is not synchronous. Here's what I've tried. Any thoughts guys? I don't want to run all three of these commands to complete all tasks. How can i do this?

var gulp = require('gulp'),
    useref = require('gulp-useref'),
    gulpif = require('gulp-if'),
    debug = require('gulp-debug'),
    rename = require("gulp-rename"),    
    replace = require('gulp-replace'),
    runSequence = require('run-sequence'),
    path = '../dotNet/VolleyManagement.UI';  

gulp.task('debug', function () {
    gulp.src('client/*.html')
        .pipe(debug())
        .pipe(gulp.dest(path + '/Areas/WebAPI/Views/Shared'));
});

gulp.task('rename', function () {    
    gulp.src(path + '/Areas/WebAPI/Views/Shared/index.html')
        .pipe(rename('/Areas/WebAPI/Views/Shared/_Layout.cshtml'))
        .pipe(gulp.dest(path));        

    gulp.src(path + '/Areas/WebAPI/Views/Shared/index.html', {read: false})
        .pipe(clean({force: true})); 
});

gulp.task('final', function(){
    gulp.src([path + '/Areas/WebAPI/Views/Shared/_Layout.cshtml'])
        .pipe(replace('href="', 'href="~/Content'))
        .pipe(replace('src="', 'src="~/Scripts'))
        .pipe(gulp.dest(path + '/Areas/WebAPI/Views/Shared/'));
}); 

gulp.task('debugAll', runSequence('debug', 'rename', 'final'));

      

+3


source to share


2 answers


I think you are not defining the "debugAll" task. Try it like this:

gulp.task('debugAll', function () { 
    runSequence('debug', 'rename', 'final');
});

      

And also you need to return a stream for these tasks, just add 'return' before gulp.src for each one: debug, rename, final. Here is an example of a "debug" task:



gulp.task('debug', function () {
    return gulp.src('client/*.html')
        .pipe(debug())
        .pipe(gulp.dest(path + '/Areas/WebAPI/Views/Shared'));
});

      

Both elements are mentioned in the docs: https://www.npmjs.com/package/run-sequence

+1


source


In gulp, you can install a dependent task. Try the following:



gulp.task('debug', function () {
    //run debug task
});

gulp.task('rename',['debug'], function () {    
    //run rename once debug is done
});

      

+3


source







All Articles