Это происходит потому, что ваша задача scripts
выводит файлы в тот же каталог, что и вы:
.pipe(gulp.dest('./src/js/'))
и
gulp.watch('./src/js/**.js', gulp.series('scripts'));
Так каждый раз scripts
запускается и сохраняет в этот каталог, он снова запускает ваш watch
, который запускает scripts
, et c., et c.
Так что либо сохраните ваши .min
в каталог, который вы не смотрите или не смотрите .min
файлы.
Кстати, измените на gulp.watch('./src/js/*.js', gulp.series('scripts'));
// удалите одну звездочку
gulp.watch(['./src/js/*.js', '!./src/js/*.min.js'], gulp.series('scripts'));
// может работать - хотя и не проверено.