咕噜,任务单独工作,但不分组工作

gulp, tasks works individually but not in group

本文关键字:工作 单独 咕噜 任务      更新时间:2023-09-26

我有 3 个任务要按顺序运行:cleanmincat,然后serve

var gulp = require('gulp');
var webserver = require('gulp-webserver');
var usemin = require('gulp-usemin');
var uglify = require('gulp-uglify');
var minifyHtml = require('gulp-minify-html');
var minifyCss = require('gulp-minify-css');
var rev = require('gulp-rev');
var rename = require('gulp-rename');
var del = require('del');
var sequential = require('run-sequence');
gulp.task('clean', function () {
    del(['./build/*.*', './build/*']);
});
gulp.task('mincat', function () {
    gulp.src('./Index.html')
      .pipe(usemin({
          css: [minifyCss(), 'concat'],
          html: [minifyHtml({ empty: true })],
          js: [uglify()],
          js1: [uglify()]
      }))
      .pipe(gulp.dest('./build/'));
});
gulp.task('serve', function () {
    gulp.src('build')
      .pipe(webserver({
          host: 'localhost',
          port: 8080,
          livereload: true,
          open: true
      }));
});
gulp.task('dev', function () {
    sequential('clean','mincat','serve');
});

如果我从命令提示符逐个运行 3 个任务,它可以工作

gulp clean
gulp mincat
gulp serve

现在我创建了一个任务来使用单个命令运行所有 3 个,它不起作用。我尝试了所有表格

  1. 添加了运行顺序插件

    gulp.task('dev', function () { sequential('clean','mincat','serve'); });

  2. 最初并行运行

    gulp.task('dev', ['clean','mincat','serve'])

  3. 我也试图分开发球

    gulp.task('dev', ['clean','mincat'] function () { gulp.start('serve'); })

但是这些工作都不是,有人可以指出问题吗?

首先,你的 2 不能工作,因为 gulp 依赖项都是并行运行的,没有特定的顺序。这 3 可以工作,但并不真正推荐,因为它不遵循 gulp 指南。

这让我们 1.你做的是正确的,但你遇到的问题是gulp不知道你的任务何时完成,所以它相当于并行运行所有内容。

要使任务同步,您必须返回其流。由于del不是流,因此您只需要使用callback。为了你的serve,我认为你不必这样做,因为它终于启动了。

这将看起来像:

gulp.task('clean', function (cb) {
  del(['./build/*.*', './build/*'], cb);
});
gulp.task('mincat', function () {
  return gulp.src('./Index.html')
    .pipe(usemin({
      css: [minifyCss(), 'concat'],
      html: [minifyHtml({ empty: true })],
      js: [uglify()],
      js1: [uglify()]
    }))
    .pipe(gulp.dest('./build/'));
});

我不明白你为什么会想到.js1文件,顺便说一下,你的index.html应该是小写的:)

相关文章: