Nicholas Summers
Nicholas Summers

Reputation: 4756

Make Gulp task synchronous without creating a bunch of other tasks

So I am writing up my gulpfile.js and I have come to a point where I need to avoid JavaScript's asynchronous behavior. In short, this is for file-system read/write.

The problem is that all the solutions I have found online thus far create several sub-tasks; which is something I want to avoid so that I don't have to write any confusing documentation about what tasks should and shouldn't be used in the command line, and what order they need to be run in, etc.

My Question: How can I make the below script run each part synchronously, without creating sub-tasks?

gulp.task('rebuild', function(){
    // Remove old build
    gulp.src('build/', {read: false}).
        pipe(rimraf());

    // Copy all of the non generated files
    gulp.src('src/**/*').
        pipe(gulp.dest('build/'));

    // Parse SASS/LESS and minify JS
    build_styles();
    build_scripts();
});

Upvotes: 1

Views: 440

Answers (1)

Lim H.
Lim H.

Reputation: 10050

Well if all else fail, you can always fall back to the callback hell:

gulp.task('rebuild', function(){
    // Remove old build
    gulp.src('build/', {read: false}).
        pipe(rimraf())
        .on('end', function () {
            // Copy all of the non generated files
            gulp.src('src/**/*').
                pipe(gulp.dest('build/'))
                .on('end', function () {
                    // Parse SASS/LESS and minify JS
                    build_styles();
                    build_scripts();
                });
        });
});

Upvotes: 1

Related Questions