Javascript 吞咽依赖性任务

Javascript 吞咽依赖性任务,javascript,node.js,build,gulp,concat,Javascript,Node.js,Build,Gulp,Concat,为了构建web应用程序的最终JS源代码,我正在编译JavaScript模板、CoffeScript源代码和vanilla JS供应商脚本。最后一个任务依赖于前三个任务,然后将脚本连接到一个文件中 在下面的设置中,我定义了最后一个任务,该任务依赖于前三个任务,最后一个步骤永远不会执行。这个过程似乎不会等到部分文件写入光盘 我也尝试过合并事件流,但对于这样的事情来说,这似乎是一种过分的做法。如果有人能给我指出正确的方向,我将不胜感激 // compile JS templates gulp.task

为了构建web应用程序的最终JS源代码,我正在编译JavaScript模板、CoffeScript源代码和vanilla JS供应商脚本。最后一个任务依赖于前三个任务,然后将脚本连接到一个文件中

在下面的设置中,我定义了最后一个任务,该任务依赖于前三个任务,最后一个步骤永远不会执行。这个过程似乎不会等到部分文件写入光盘

我也尝试过合并事件流,但对于这样的事情来说,这似乎是一种过分的做法。如果有人能给我指出正确的方向,我将不胜感激

// compile JS templates
gulp.task('js-build-template', function() {
    gulp.src('./../app/assets/javascripts/**/*.jst.eco')
        .pipe(eco({ basePath: 'app/assets/javascripts', namespace: 'JST_ATL' }))
        .pipe(concat('_templates.js'))
        .pipe(gulp.dest('public/assets/scripts/partials'));
});

// compile CoffeeScript source
gulp.task('js-build-source', function() {
    gulp.src(js.source)
        .pipe(coffee())
        .pipe(concat('_source.js'))
        .pipe(gulp.dest('public/assets/scripts/partials'));
});

// compile vendor scripts
gulp.task('js-build-vendor', function() {
    gulp.src(js.vendor)
        .pipe(concat('_vendor.js'))
        .pipe(gulp.dest('public/assets/scripts/partials'));
});

// concatenate and fingerprint files
gulp.task('js-build', [ 'js-build-template', 'js-build-source', 'js-build-vendor' ], function() {
    gulp.src([ 'public/assets/scripts/partials/_templates.js', 'public/assets/scripts/partials/_vendor.js', 'public/assets/scripts/partials/_source.js' ])
        .pipe(concat('app.js'))
        .pipe(gulp.dest('public/assets/scripts'))
        .pipe(rev())
        .pipe(gulp.dest('public/assets/scripts'))
        .pipe(rev.manifest())
        .pipe(gulp.dest('public/assets/scripts'));
});

在所有3个任务中,您都需要返回语句

gulp.task('js-build-template', function() {
    return gulp.src('./../app/assets/javascripts/**/*.jst.eco')
        .pipe(eco({ basePath: 'app/assets/javascripts', namespace: 'JST_ATL' }))
        .pipe(concat('_templates.js'))
        .pipe(gulp.dest('public/assets/scripts/partials'));
});
这将有助于让最后一项任务知道他们已经完成,需要开始