如何将 gulp.watch 从 gulp 3.x 迁移到 gulp 4.x

How to migrate gulp.watch from gulp 3.x to gulp 4.x

我目前正在努力将 gulp 从 3.x 迁移到 4.x 我在转换时感到震惊 gulp。 下面是 gulp.watch 代码

function isOnlyChange(event) {
    return event.type === 'changed';
  }

  function watch(){
    gulp.watch([path.join(conf.paths.src, '/*.html')], ['inject-reload']);

     gulp.watch([
      path.join(conf.paths.src, '/app/**/*.css'),
      path.join(conf.paths.src, '/app/**/*.scss')
    ], function (event) {
      if (isOnlyChange(event)) {
        gulp.start('styles-reload');
      } else {
        gulp.start('inject-reload');
      }
    });

    gulp.watch([path.join(conf.paths.src, '/app/**/*.js'), path.join(conf.paths.src, '/app/**/*.json')], function (event) {
      if (isOnlyChange(event)) {
        gulp.start('scripts-reload');
      } else {
        gulp.start('inject-reload');
      }
    });

    gulp.watch(path.join(conf.paths.src, '/app/**/*.html'), function (event) {
      browserSync.reload(event.path);
    });
  };

  gulp.task('watch', gulp.series(watch));
})();

我收到以下错误 错误:watching src*.html:watch 任务必须是一个函数(可选地使用 gulp.parallel 或 gulp.series 生成)

每个gulp.watch都需要加串联和并联吗? 这个怎么迁移,有没有示例代码可以参考

错误指出监视任务必须是一个函数,而你的是一个数组。将其更改为:

gulp.watch([path.join(conf.paths.src, '/*.html')], gulp.series('inject-reload'));

有关详细信息,请查看