首页 > 解决方案 > 在 gulp.series 中传递函数参数

问题描述

我只是想知道是否可以像这样在 gulp.series 中传递函数参数gulp.series(scripts(arg), reload)而无需获取AssertionError [ERR_ASSERTION]: Task never defined: [object Object].

完整的目标代码如下:

//required imports
const watch = () => {
    const backendWatcher = gulp.watch('./*.js');
    backendWatcher.on('change', (path,stats) => {
        log(path,stats);
        gulp.series(scripts(path), reload)//error occurs here(line 20)
        log("passed :D");
    });
}

function scripts(file) {
    if(!file) return false, log("no file found");
    return gulp.src(`./${file}`)
        .pipe(browserify())
        .pipe(uglify())
        .pipe(gulp.dest('./dist'));
}

function reload(done) {
    browserSync.reload();
    done();
}

function serve(done) {
    browserSync.init({
        server: {
            baseDir: './',
            index: "/index.html"
        }
    });
    done();
}

const dev = gulp.series(serve, watch);
exports.dev = dev;
exports.scripts = scripts;
exports.reload = reload;

错误:

AssertionError [ERR_ASSERTION]: Task never defined: [object Object]
at FSWatcher.<anonymous> (gulpfile.js:20:14)

文件结构:

Project/
dist/
  ┣ compiled.js
  ┗ wow.min.js
┣ gulpfile.js
┣ index.html
┣ package.json
┣ app.js

标签: javascriptgulpbrowser-sync

解决方案


推荐阅读