为什么gulp会抛出“您忘记发出异步完成信号了吗?”

2vuwiymt  于 2022-12-08  发布在  Gulp
关注(0)|答案(1)|浏览(151)

我有下面的大口文件,工作了几个月的罚款,直到今天早上:

//gulpfile.js
const gulp = require('gulp')
const { series } = require('gulp')
const rename = require('gulp-rename')
const uglify = require('gulp-uglify')
const sass = require('gulp-sass')(require('sass'))

function minJs() {
    return gulp
        .src('./dev/js/script.js')
        .pipe(uglify())
        .pipe(
            rename({
                extname: '.min.js'
            })
        )
        .pipe(gulp.dest('./build/js/'))
}
exports.minJs = minJs

function minCss() {
    return gulp
        .src('./dev/css/style.sass')
        .pipe(sass({ outputStyle: 'compressed' }).on('error', sass.logError))
        .pipe(
            rename({
                extname: '.min.css'
            })
        )
        .pipe(gulp.dest('./build/css/'))
}
exports.minCss = minCss

exports.test = () => {
    series(minCss, minJs)
}

每次运行“Gulp测试”时,我都会收到以下错误:

[11:17:59] Starting 'test'...
[11:17:59] The following tasks did not complete: test
[11:17:59] Did you forget to signal async completion?

我试着给这两个任务添加一个回调函数,并尝试将它们更改为异步函数,但都没有解决这个问题。我不知道为什么我会得到这个错误,因为我正在返回一个流。
任何帮助都是感激不尽的!

vybvopom

vybvopom1#

gulp.series实际上是一个高阶规则,也就是说,它从规则中生成一个规则,所以不应该被 Package 在闭包中:

exports.test = series(minCss, minJs);

相关问题