我有一个gulpfile,应该在压缩代码之前清理我的dist目录。有时,在压缩代码时清理任务仍在运行,导致一些文件丢失。
问题是什么?我的理解是,任务的依赖关系将在任务运行之前完成,并且即使它是多个任务的依赖项,依赖项也只会运行一次。
问题是什么?我的理解是,任务的依赖关系将在任务运行之前完成,并且即使它是多个任务的依赖项,依赖项也只会运行一次。
var gulp = require('gulp');
var gulpLoadPlugins = require('gulp-load-plugins');
var plugins = gulpLoadPlugins();
var del = require('del');
gulp.task('default', ['css', 'js', 'fonts']);
gulp.task('clean', function(cb) {
del(['dist/**'], cb);
});
gulp.task('css', ['clean'], function() {
return gulp.src('style.css')
.pipe(plugins.autoprefixer({
browsers: ['last 2 versions']
}))
.pipe(gulp.dest('dist'))
.pipe(plugins.minifyCss({
noRebase: true,
keepSpecialComments: 0
}))
.pipe(plugins.rename({extname: '.min.css'}))
.pipe(gulp.dest('dist'));
});
gulp.task('js', ['clean'], function() {
return gulp.src('scripts.js')
.pipe(gulp.dest('dist'))
.pipe(plugins.uglify({preserveComments: 'some'}))
.pipe(plugins.rename({extname: '.min.js'}))
.pipe(gulp.dest('dist'));
});
gulp.task('fonts', ['clean'], function() {
return gulp.src('fonts/*')
.pipe(gulp.dest('dist/fonts'));
});
更新:Gulp输出显示清理任务在其他任务开始之前已完成,但有时并不是所有的输出文件都在dist目录中,有时候会出现。
[09:47:15] Using gulpfile /Users/raddevon/Documents/projects/AlphaBlog/theme/gulpfile.js
[09:47:15] Starting 'clean'...
[09:47:15] Finished 'clean' after 8.06 ms
[09:47:15] Starting 'css'...
[09:47:15] Starting 'js'...
[09:47:16] Starting 'fonts'...
[09:47:16] Finished 'js' after 399 ms
[09:47:16] Finished 'css' after 899 ms
[09:47:16] Finished 'fonts' after 267 ms
[09:47:16] Starting 'default'...
[09:47:16] Finished 'default' after 7.78 μs
.pipe(gulp.dest('dist'))
? - Olegclean
任务在其他任务开始运行之前没有完成的?你能贴出一些 Gulp 的输出吗? - Bendel(['dist/**/*'], cb);
- Slawa Eremin