Gulp: 你是不是忘了发出异步完成错误信号
Gulp: Did you forget to signal async completion error
我最近不得不升级到 gulp 4,我发现了这个错误:
您是否忘记了发出异步完成信号?
我的 gulp 文件如下所示:
(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 我们需要 return 承诺、流或回调等。我确实尝试在函数中添加回调并执行它们,但我仍然看到错误。
谁能给我指明方向?
感谢阅读。
此代码是 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
包含两个(或更多)函数。
我最近不得不升级到 gulp 4,我发现了这个错误:
您是否忘记了发出异步完成信号?
我的 gulp 文件如下所示:
(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 我们需要 return 承诺、流或回调等。我确实尝试在函数中添加回调并执行它们,但我仍然看到错误。
谁能给我指明方向?
感谢阅读。
此代码是 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
包含两个(或更多)函数。