我正在学习关于 gulp 的复数课程。John Papa 正在演示如何将删除现有 css 文件的函数注入到编译新 css 文件的例程中。
del 函数的回调未触发。del 函数正在运行,文件被删除,我没有看到任何错误消息。如果我手动调用回调它会执行,所以看起来该函数是完整的。所以我想知道是什么导致 del 不想执行回调。
删除例程:
function clean(path, done) {
log('cleaning ' + path);
del(path, done); // problem call
}
“完成”功能没有触发,但如果我将代码更改为:
function clean(path, done) {
log('cleaning ' + path);
del(path);
done();
}
当然,这违背了等到 del 完成后再继续的预期目的。
任何关于正在发生的事情的想法将不胜感激。
供参考(如果相关):
编译css函数:
gulp.task('styles', ['clean-styles'], function(){
log('compiling less');
return gulp
.src(config.less)
.pipe($.less())
.pipe($.autoprefixer({browsers:['last 2 versions', '> 5%']}))
.pipe(gulp.dest(config.temp));
});
注入清洁功能:
gulp.task('clean-styles', function(done){
var files = config.temp + '/**/*.css';
clean(files, done);
});
更新
如果其他人遇到这种情况,请重新观看培训视频,它使用的是 v1.1 的 del。我检查了一下,我使用的是 2.x。安装 v 1.1 后一切正常。