任务从未定义:未定义

Task never defined: undefined

我使用了与另一个项目类似的配置(有更多任务),但我不确定我在这里缺少什么来得到这个错误:

AssertionError [ERR_ASSERTION]: Task never defined: undefined

所以想使用 Gulp 4 并使用 3 个任务(构建 HTML、缩小 JavaScript 和创建服务器)。我将其分为 2 个进程:开发和构建。

const gulp        = require('gulp');
const jsmin       = require('gulp-jsmin');
const browserSync = require('browser-sync').create();

function jsMinify () {
  return gulp.src('./src/**/*.js')
    .pipe(jsmin())
    .pipe(gulp.dest('./dist'))
}

function buildHTML () {
  return gulp.src('./src/html/**/*.html')
    .pipe(gulp.dest('./dist'))
}

function buildServe () {
  browserSync.init({
    server: {
        baseDir: "./dist/",
    },
    port: 9001
  });
}

function watch (){
  browserSync.init({
    server: {
        baseDir: "./src/",
    },
    port: 8080
  });
  gulp.watch('./src/**/*.html').on('change', browserSync.reload);
  gulp.watch('./src/**/*.js').on('change', browserSync.reload);
};

const dev = gulp.series(watch);
const build = gulp.series(
  gulp.parallel(buildHTML, jsMinify),
  buildServe()
);

exports.dev = dev;
exports.build = build;

我是否遗漏了关于 Gulp 4 的内容,或者此代码应该 运行 没有任何问题?

这是一个错误:


    const build = gulp.series(
      gulp.parallel(buildHTML, jsMinify),
      buildServe()    // <= error here, don't call the function just list it like below
    );

    const build = gulp.series(
      gulp.parallel(buildHTML, jsMinify),
      buildServe     //  <= removed ()
    );

gulp.series() 参数是函数名或任务名。通过使用 buildServe() 我想它正在返回 undefined 因此关于 undefined 的错误消息从未被定义为任务。我希望这是有道理的。

[我还无法测试此更改以查看它是否解决了您的问题,但我没有在您的代码中发现任何其他问题。]