Может поможет мой пример:
spoilergulp.task('server', function () {
server.init({
server: 'build/',
notify: false,
open: true,
cors: true,
ui: false
});
gulp.watch('source/sass/**/*.{scss,sass}', gulp.series('sass'));
gulp.watch('source/*.html', gulp.series('html', 'refresh'));
gulp.watch('source/js/*.js', gulp.series('js'));
});
gulp.task('build', gulp.series('clean', 'copy', 'html', 'sass', 'js'));
gulp.task('start', gulp.series('build', 'server'));
Я когда писал его, тоже пытался сделать отдельный таск на watch. Но что-то там не работало, но работает, если watch'ры прописать в таске сервера. Возможно, это то, что вы ищите.