Нашел решение, которое мне не нравится.
Но это действительно работает.
Нужно саму функцию завернуть в gulp.task типа:
'use strict';
const { src, dest, task } = require('gulp');
const less = require('gulp-less');
task('styles', function () {
return src('./src/styles/main.less')
.pipe(less())
.pipe(dest('./build/css'));
});
а в gulpfile.js запуск задач писать в старом варианте:
'use strict';
const {
src,
dest,
watch,
series,
parallel,
lastRun,
task } = require('gulp');
const requireDir = require('require-dir');
requireDir('./tasks');
task('default', parallel('html', 'styles'));
К сожалению, я сам так и не понял с чем это связано.