原因:gulp 不再支持同步任务了。因为同步任务常常会导致难以调试的细微错误,例如忘记从任务(task)中返回 stream。
当你看到 “Did you forget to signal async completion?” 警告时,说明你并未使用前面提到的返回方式。你需要使用 callback 或返回 stream、promise、event emitter、child process、observable 来解决此问题。
如果任务(task)不返回任何内容,则必须使用 callback 来指示任务已完成。
原代码:
const gulp = require("gulp");
gulp.task("first", () => {
console.log("第一个gulp任务执行了");
// 使用gulp获取要处理的文件
gulp.src("./src/css/base.css").pipe(gulp.dest("dist/css"));
});
报错
修改后:
const gulp = require("gulp");
gulp.task("first", (cb) => {
console.log("第一个gulp任务执行了");
// 使用gulp获取要处理的文件
gulp.src("./src/css/base.css").pipe(gulp.dest("dist/css"));
cb();
});
执行结果
gulp官方文档