吞咽相关任务

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

在下面的设置中,我定义了前三个依赖关系的最后一个任务,最后一步从不执行。 看来,进程不会等到部分文件写入光盘。

我尝试合并事件stream,但似乎是这样的事情矫枉过正。 如果有人能在这里指出我正确的方向,我将不胜感激。

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

这将有助于让最终任务知道他们已经完成,并且需要开始…