2017-03-15 109 views
0

我是一個吞嚥世界的新手,因此我仍然在小心翼翼地解決這個問題。吞嚥不執行壓縮任務

問題:正在跳過zip任務,即使在「默認」任務中定義。

我在哪裏/我在想什麼?

更多細節

gulp zip運行正常時,在命令行指定的(不存在例如;語法錯誤,並且如預期正在產生的輸出):

$ gulp zip 
[16:49:41] Using gulpfile ~/Work/........../gulpfile.js 
[16:49:41] Starting 'zip'... 
[16:49:41] Finished 'zip' after 11 ms 
$ 

然而,當運行gulp(沒有任何附加參數時,表示選擇default):

$ gulp 
[16:49:34] Using gulpfile ~/Work/........../gulpfile.js 
[16:49:34] Starting 'clean'... 
[16:49:34] Finished 'clean' after 35 ms 
... 
... 
[16:49:36] Finished 'minify-css' after 750 ms 
[16:49:36] Starting 'build'... 
[16:49:36] Finished 'build' after 2.1 μs 
$ 

zip任務被跳過

檢查 '默認' 的任務定義(!?):

gulp.task('default', ['clean'], function() { 
    gulp.start('build'); 
}); 

而且'建設」的任務定義爲:

gulp.task('build', ['html', 'images', 'fonts', 'misc', 'i18n', 'swagger', 'minify-js', 'minify-css', 'zip']); 

看的zip任務在數組末尾列出。 最後,zip任務被定義爲:

gulp.task('zip', function() { 
    var packageName = 'whatever'; 
    var dateString = now.getFullYear()+('0'+(parseInt(now.getMonth())+1)).substr(-2)+('0'+now.getDate()).substr(-2); 
    var timeString = ('0'+now.getHours()).substr(-2)+('0'+now.getMinutes()).substr(-2)+('0'+now.getSeconds()).substr(-2); 
    gulp.src('target/dist/**') 
    .pipe(zip(packageName+'-'+dateString+'.'+timeString+'.zip')) 
    .pipe(gulp.dest('target')); 
    return; 
}); 

任何幫助[指向的方向],將不勝感激。

+0

你對所有的任務return語句? – Mark

+0

@Mark大多數人都有。運行'return'的任務如下: gulp.task('images',function(){ return gulp.src('webapp/assets/images/**/*') .pipe(... ) .pipe(gulp.dest('webapp/dist/assets/images /')); }); 我已經嘗試過相同的風格,但沒有成功:除非明確指定,否則'zip'任務不會運行。 – Feng

+0

您是否嘗試在構建任務的開始處放置zip任務以查看它是否在那裏運行,並且最後的任何內容都不會運行? – Mark

回答

0

還有一個教訓!

Gulp,默認情況下,runs as much as possible the tasks in asynchronous fashion - 除非您已採取適當措施強制它以順序方式運行任務。

說了這麼一句,zip的任務確實被執行了 - 但它的執行方式比我預期的要早 - 因此我[不正確]認爲它完全沒有運行。

因此,我不是將'zip'任務作爲「構建」任務所依賴的一個任務添加,而是使'zip'任務依賴於'構建'任務,並具有'默認'任務運行「拉鍊」的任務:

gulp.task('zip', function() { 
    var packageName = 'whatever'; 
    var dateString = now.getFullYear()+... 
    var timeString = ('0'+now.getHours()).substr(-2)+... 
    gulp.src('target/dist/**') 
    .pipe(zip(packageName+'-'+dateString+'.'+timeString+'.zip')) 
    .pipe(gulp.dest('target')); 
    return; 
}); 

gulp.task('build', ['html', 'images', 'fonts', 'misc', 'i18n', 'swagger', 'minify-js', 'minify-css']); 

gulp.task('default', ['clean'], function() { 
    //gulp.start('build'); 
    gulp.start('zip'); 
}); 

這些變化之後,開始建立按預期方式工作:

$ gulp 
[17:04:59] Using gulpfile ~/Work/ij-wksp/smiles-password-form-Q1_2017/gulpfile.js 
[17:04:59] Starting 'clean'... 
[17:04:59] Finished 'clean' after 45 ms 
[17:04:59] Starting 'default'... 
[17:04:59] Starting 'wiredep'... 
[17:04:59] Starting 'injector:css'... 
[17:04:59] Starting 'scripts'... 
[17:05:00] Starting 'version'... 
[17:05:00] Starting 'consolidate:jade:app'... 
[17:05:00] Starting 'consolidate:jade:scripts'... 
... 
[17:05:01] Finished 'html' after 233 ms 
[17:05:01] Starting 'build'... 
[17:05:01] Finished 'build' after 3.71 μs 
[17:05:01] Starting 'zip'... 
[17:05:01] Finished 'zip' after 1.95 ms 
$