Gulp Watch is not working

IN GULP 4.X

You have to pass a function. The customary way of doing this in gulp 4.x is to pass a gulp.series() invocation with only one task name. This returns a function that only executes the specified task.

gulp.task('watch', function() {
  gulp.watch('./assets/scss/*.scss', gulp.series('compass'))
});

I changed gulp.watch source to ./assets/**/*.scss


You've neglected to actually call the "watch" task, which is not the same thing as gulp.watch. Your default gulp task should instead look like:

gulp.task('default', function() {
    gulp.start('compass');
    gulp.start('watch');
});

but it should really just look like:

gulp.task('default', ['compass', 'watch']);