gulp任务在第二次运行时引发错误

时间:2019-02-05 08:09:35

标签: gulp

我有两个文件夹,两个文件夹都包含一些html模板文件。我需要将这些文件缩小到单独的文件夹。

文件夹结构

|src
|--clientTemplates
|----abc.html
|----xyz.html
|--serverTemplates
|----abc.html
|----xyz.html

所需的目标文件夹

|dist
|--client
|----abc.html
|----xyz.html
|--server
|----abc.html
|----xyz.html

以下是我的gulpfile,其中为

定义了任务
var gulp = require('gulp');
var htmlmin = require('gulp-htmlmin');
var replace = require('gulp-replace');
var del = require('del');
var minOptions = {
    collapseWhitespace: true,
    minifyJS: { output: { quote_style: 1 } },
    minifyCSS: true
};    

gulp.task('clean', function(done) {
    del(['dist'], done());
});

gulp.task('minify:serverTemplates', function() {
    return gulp
        .src('src/serverTemplates/*.html')
        .pipe(htmlmin(minOptions))
        .pipe(replace('\\', '\\\\'))
        .pipe(replace('"', '\\"'))
        .pipe(gulp.dest('dist/server'));
});

gulp.task('minify:clientTemplates', function() {
    return gulp
        .src('src/clientTemplates/*.html')
        .pipe(htmlmin(minOptions))
        .pipe(gulp.dest('dist/client'));
});

gulp.task(
    'default',
    gulp.series('clean', 'minify:serverTemplates', 'minify:clientTemplates', function inSeries(done) {
        done();
    })
);

当我运行gulp命令时,它第一次运行正常,但在其他运行中会引发错误。 第一次运行gulp命令 running gulp command first time- output

第二次运行gulp命令 running gulp command second time- output

无法弄清楚那里到底是什么错误。 清理任务完成后,还有没有办法并行运行两个缩小任务?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您传递给del的回调是错误的。只要兑现承诺:

gulp.task('clean', function() {
  return del(['dist']);
});

关于并行运行缩小任务,请使用gulp.parallel

gulp.task(
  'default',
  gulp.series(
    'clean',
    gulp.parallel('minify:serverTemplates', 'minify:clientTemplates')
  )
);