【问题标题】:gulp task throwing error on second time rungulp 任务在第二次运行时抛出错误
【发布时间】:2019-06-29 00:21:03
【问题描述】:

我有两个文件夹,它们都包含一些 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 命令

第二次运行 gulp 命令

无法弄清楚那里到底出了什么问题。 还有一种方法可以在清理任务完成后并行运行两个缩小任务吗?

感谢您的帮助。

【问题讨论】:

  • 将清理任务更改为gulp.task('clean', function() { return del(['dist']); });时错误是否消失?
  • @TheDancingCode....谢谢老兄,成功了。

标签: gulp


【解决方案1】:

您传递给del 的回调是错误的。只需返回承诺:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多