【问题标题】:Gulp: Did you forget to signal async completion errorGulp:您是否忘记发出异步完成错误信号
【发布时间】:2021-05-06 14:17:59
【问题描述】:

我最近不得不升级到 gulp 4,我发现了这个错误:

您是否忘记发出异步完成信号?

我的 gulpfile 如下所示:

(function () {
  "use strict";

  const demoPath = "demo/node_modules/style";
  var cleanCSS = require("gulp-clean-css");
  const del = require("del");
  const fs = require("fs");
  var gulp = require("gulp");
  var sass = require("gulp-sass");
  var path = require("path");
  var rename = require("gulp-rename");

  gulp.task("clean", () => {
    return del.sync([
      "**.js", "!gulpfile.js"
    ]);
  }, async  function(done){
    console.log("This is clean task!");
    done();
  });

  function clean() {
    return gulp.src("src/**/*.scss")
      .pipe(sass())
      .pipe(cleanCSS({}))
      .pipe(rename({
        extname: ".min.css"
      }))
      .pipe(gulp.dest("./dist"));
  }

  gulp.task("build", gulp.series("clean"), function(done) {
    console.log("Started");
    done();
  });

}());

我读到使用 gulp 4 我们需要返回一个承诺、一个流或回调等。我确实尝试在函数中添加回调并执行它们,但我仍然看到错误。

谁能给我指个方向?

感谢阅读。

【问题讨论】:

    标签: javascript node.js gulp


    【解决方案1】:

    这段代码是 gulp v3 语法:

      gulp.task("build", gulp.series("clean"), function(done) {
        console.log("Started");
        done();
      });
    

    gulp.task() 不再需要 3 个参数,只有两个。所以改成:

      gulp.task("build", gulp.series("clean", function(done) {
        console.log("Started");
        done();
      }));
    

    gulp.series 内部有两个(或更多)函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多