Fabian Deitelhoff
Fabian Deitelhoff

Reputation: 742

Wait for completion in Gulp tasks

I've specified some Gulp tasks in a gulpSequence like this:

gulp.task('default', function(done){
    gulpSequence(
        'private:clean',
        'private:copy-app-package-file',
        'private:copy-app-main-file',
        'private:copy-libs',
        'private:copy-app-files',
        'private:copy-css-files',
        'private:build-html',
        'private:package-app',
        done);
});

I thought that they should run one after another. The build-html tasks needs the libs, app-files and css-files, because they get included within one html file.

But if I run the default task, the build-html task is missing some files. For example the task can only inject 10 files in the html file but there are 16 files.

Is there another way to specify dependent tasks. I thought the gulpSequence will handle this.

Upvotes: 1

Views: 1058

Answers (2)

petehotchkiss
petehotchkiss

Reputation: 400

You're on the right lines, but the npm package you are trying to use is depreciated. Might be worth considering checking out run-sequence (https://www.npmjs.com/package/run-sequence) which waits for a previous task to complete before starting.

So in your instance, this would become

gulp.task('default', function( cb ) { $.runSequence( 'private:clean', 'private:copy-app-package-file', 'private:copy-app-main-file', 'private:copy-libs', 'private:copy-app-files', 'private:copy-css-files', 'private:build-html', 'private:package-app', cb ) });

Upvotes: 1

Andreas Jägle
Andreas Jägle

Reputation: 12240

You specified that all tasks should run in sequence with no parallelism at all. A new task starts as soon as a former task shows completion.

Probably you have some issues in a task before the build-html task. Do they handle the completion (done() callback) correctly? In most cases I saw there was some async action triggered and the callback was called before the async task finished. So the sequence continues before the task is really over...

Upvotes: 0

Related Questions