var gulp = require('gulp');
var uglify = require('gulp-uglify');
var concat = require('gulp-concat');
var sass = require('gulp-sass');
var minify = require('gulp-minify-css');
var del = require('del');
var lint = require('gulp-jshint');

gulp.task('lint', function() {
    return gulp.src('private/scripts/**/*.js')
            .pipe(lint())
            .pipe(lint.reporter('default'))
            .pipe(lint.reporter('fail'));
});
 
gulp.task('clean', function () {
	return del(['public/**/*']);
});

gulp.task('styles', function() {
	return gulp.src('private/styles/*.css')
	.pipe(sass())
	.pipe(minify())
	.pipe(concat("style.css"))
	.pipe(gulp.dest('public/styles'));
});

gulp.task('scripts', function() {
	return gulp.src('private/scripts/**/*.js')
	//.pipe(uglify()) // TODO: uncomment
	.pipe(concat("ang.min.js"))
	.pipe(gulp.dest('public/scripts'));
});

gulp.task('images', function() {
	return gulp.src('private/images/*.*')
	.pipe(gulp.dest('public/images'));
});

gulp.task('default', gulp.series('lint', 'clean', gulp.parallel('styles', 'scripts', 'images')));

@@ -1003,24 +1003,26 @@
 .series(
+//
 'lint', 
 'clean',
@@ -1013,24 +1013,54 @@
 'lint', 
-'clean',
+// fail early%0A        'clean',%0A       
  gulp.pa
@@ -1095,13 +1095,309 @@
 'images'
+,%0A        function(done) %7B%0A            gulp.watch('private/images/*.*', gulp.parallel('images'));%0A            gulp.watch('private/styles/*.css', gulp.parallel('styles'));%0A            gulp.watch('private/scripts/**/*.js', gulp.series('lint', 'scripts'));%0A            %0A            done();%0A        %7D
 )));%0A

Use gulp as a listener