Gulp 4、Tasks在调用watch之前不执行

Gulp 4, Tasks don't execute before calling watch

我正在使用 Gulp 4 将我的代码从 TypeScript 编译为 JavaScript 并构建和提供应用程序。

我遇到了一个我无法解决的问题。

我想 运行 在更改某些文件之前执行构建、复制-html 和复制-css 任务。

根据 Gulp 文档,我只需要提供一个将 ignoreInitial 设置为 false 的配置对象,但它不起作用。

我尝试在初始化 browserSync 之前调用这三个任务,但它对我也不起作用。

gulp.task("serve", function() {
  // TODO Make a build before first serve
  browserSync.init({
    server: {
      baseDir: "./dist/"
    }
  });
  gulp
    .watch(["src/**/*.ts", "src/**/*.html", "src/**/*.css"], {
      ignoreInitial: false
    })
    .on(
      "change",
      gulp.series(
        gulp.parallel("copy-html", "copy-css"),
        build,
        browserSync.reload
      )
    );
});

不要在返回的 chokidar 界面上调用 .on(),而是将您的任务添加到 watch 命令。

gulp
  .watch(
    ["src/**/*.ts", "src/**/*.html", "src/**/*.css"], 
    { ignoreInitial: false }, 
    gulp.series(
      gulp.parallel("copy-html", "copy-css"),
        build,
        browserSync.reload
      )
    )
  );