2016-03-27 43 views
2

我有這方面的任務:咕嘟咕嘟文件任務的執行順序

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。

當我取出依賴關係並手動運行這些步驟時,它就可以工作。

是否有一些問題,我與訂購。我認爲它會首先運行依賴關係。

回答

2

前一陣子我問了similar question。基本上,我們都有精心製作的this question on what it means to return from a task;我建議閱讀最後一個鏈接及其鏈接。

您需要從您的任務中返回流,以幫助吞嚥按正確的順序進行。由於您在第二個任務中有3個不同的流,我建議使用merge-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/')); 
}); 
+0

這解決了我的問題。謝謝。 – Alan2