2015-09-23 61 views
1

我在我的gulp文件中使用del包作爲乾淨任務的一部分。在gulpfile中的npm del錯誤Visual Studio 2015

下面是我使用 的Visual Studio 2015年社區 Node.js的v2.11.3 一飲而盡v3.9.0 德爾V2.0.2

這是從我一飲而盡文件摘錄的東西版本:

var gulp = require('gulp'); 
var del = require('del'); 
var config = require('./gulp.config')(); 

var $ = require('gulp-load-plugins')({ lazy: true }); 

gulp.task('images', ['clean-images'], function() { 
    log('Copying and compressing the images'); 

    return gulp 
     .src(config.images) 
     .pipe($.imagemin({optimizationLevel: 4})) 
     .pipe(gulp.dest(config.build + 'images')); 
}); 

gulp.task('clean-images', function (done) { 
    clean(config.build + 'images/**/*.*', done); 
}); 

function clean(path, done) { 
    log('Cleaning: ' + $.util.colors.blue(path)); 
    del(path, done); 
} 

當我運行使用gulp imagesclean-images執行任務的命令提示符任務images但從未完成。它與行錯誤:

[16:10:45] Using gulpfile ~\Documents\Visual Studio 2015\Projects\**\Gulpfile.js 
[16:10:46] Starting 'clean-images'... 
[16:10:46] Cleaning: build/images/**/*.* 
Process terminated with code 0. 

因此,images任務的其餘部分不會執行。

當我刪除clean-images依賴項時,images任務正常運行。

不要以爲有人曾經見過這個問題,並知道如何糾正它?

感謝

回答

1

我想你已經遇到了同樣的錯誤,因爲這user:在del模塊不使用回調了,但承諾。 done永遠不會被調用,所以cleanimages任務同時運行,這會導致錯誤。

你可以只從清潔方法返回:

gulp.task('clean-images', function() { 
    return clean(config.build + 'images/**/*.*'); 
}); 

function clean(path) { 
    log('Cleaning: ' + $.util.colors.blue(path)); 
    return del(path); 
} 
+0

啊,說明它!謝謝! – GreenyMcDuff

相關問題