一揽子文件任务执行顺序

我有这些任务:

gulp.task('clean-css', function () { del.sync([ 'content/bundles/css.css', 'content/bundles/css.css.bundle', 'content/bundles/css.min.css', 'content/bundles/css.min.css.gz', 'temp/css/common/*.css', 'temp/css/user/*.css', 'temp/css/media/*.css']) }); gulp.task('make_css_files', ['clean-css'], function () { gulp.src('content/less/common/*.less').pipe(less()).pipe(gulp.dest('temp/css/common')); gulp.src('content/less/user/*.less').pipe(less()).pipe(gulp.dest('temp/css/user')); gulp.src('content/less/media/*.less').pipe(less()).pipe(gulp.dest('temp/css/media')); }); gulp.task('make_css_bundle', ['make_css_files'], function () { return gulp.src(['temp/css/common/*.css', 'temp/css/user/*.css', 'temp/css/media/*.css']) .pipe(minifyCSS()) .pipe(concat('css.min.css')) .pipe(gulp.dest('content/bundles/')) .pipe(gzip(gzip_options)) .pipe(gulp.dest('content/bundles/')); }); 

当我运行make_css_bundle时,它运行:

 [18:38:04] Using gulpfile C:\H\user\user\Gulpfile.js [18:38:04] Starting 'clean-css'... [18:38:04] Finished 'clean-css' after 86 ms [18:38:04] Starting 'make_css_files'... [18:38:04] Finished 'make_css_files' after 6.5 ms [18:38:04] Starting 'make_css_bundle'... [18:38:04] Finished 'make_css_bundle' after 21 ms Process terminated with code 0. 

然而,似乎干净的是不顺序,当我检查有没有缩小的CSS创build。

当我取出依赖关系并手动运行这些步骤时,它就可以工作。

订购时是否有一些问题。 我以为它会先运行依赖关系。

我前一段时间问过类似的问题 。 基本上,我们都对这个问题做了精心的复制,说明从一个任务return意味着什么 ; 我build议阅读最后一个链接和链接。

你需要从你的任务中返回stream,帮助他们按照正确的顺序进行吞吐。 由于在第二个任务中有3个不同的stream,我build议使用merge-stream来返回所有三个子stream中的一个stream,合并在一起。 例如:

 var merge = require('merge-stream'); gulp.task('clean-css', function () { return del.sync([ 'content/bundles/css.css', 'content/bundles/css.css.bundle', 'content/bundles/css.min.css', 'content/bundles/css.min.css.gz', 'temp/css/common/*.css', 'temp/css/user/*.css', 'temp/css/media/*.css']); }); gulp.task('make_css_files', ['clean-css'], function () { return merge( gulp.src('content/less/common/*.less').pipe(less()).pipe(gulp.dest('temp/css/common')), gulp.src('content/less/user/*.less').pipe(less()).pipe(gulp.dest('temp/css/user')), gulp.src('content/less/media/*.less').pipe(less()).pipe(gulp.dest('temp/css/media')) ); }); gulp.task('make_css_bundle', ['make_css_files'], function () { return gulp.src(['temp/css/common/*.css', 'temp/css/user/*.css', 'temp/css/media/*.css']) .pipe(minifyCSS()) .pipe(concat('css.min.css')) .pipe(gulp.dest('content/bundles/')) .pipe(gzip(gzip_options)) .pipe(gulp.dest('content/bundles/')); });