Gulp Watch无法正常工作

时间:2014-04-03 08:08:38

标签: javascript node.js compass-sass gulp

我是新的Gulp用户,我尝试使用简单的脚本来观看指南针,但它没有用。但是当我运行gulp compass时,gulp可以编译它。有任何想法吗?我的脚本在这里:

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

});

3 个答案:

答案 0 :(得分:31)

你忽略了实际调用“监视”任务,这与gulp.watch不同。您的默认gulp任务应该如下所示:

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

但它应该看起来像:

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

答案 1 :(得分:7)

我将gulp.watch来源更改为./assets/**/*.scss

答案 2 :(得分:0)

IN GULP 4.X

您必须传递一个函数。在gulp 4.x中执行此操作的惯用方法是仅使用一个任务名称传递gulp.series()调用。这将返回仅执行指定任务的函数。

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