Gulp Watch is not working

Nizamil Putra picture Nizamil Putra · Apr 3, 2014 · Viewed 36.4k times · Source

I'm new Gulp user, and I try simple script to watch compass, but it didn't work. But when I just run gulp compass gulp can compile it. Any ideas? Here my script:

var gulp = require('gulp'),
    compass = require('gulp-compass'),

// Compass
gulp.task('compass', function() {
    gulp.src('./assets/scss/*.scss')
        .pipe(compass({
            config_file: './config.rb',
            css: './assets/css',
            sass: './assets/scss'
        }))
        .pipe(gulp.dest('./assets/css'));
});

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

// Watch
gulp.task('watch', function() {

    // Watch .scss files
    gulp.watch('./assets/scss/*.scss', ['compass']);

});

Answer

cozuya picture cozuya · May 12, 2014

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']);