web-dev-qa-db-ja.com

Gulp Watchが機能しない

私は新しい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']);

});
9
Nizamil Putra

あなたは実際に「監視」タスクを呼び出すことを怠っています。これはgulp.watchと同じものではありません。代わりに、デフォルトのgulpタスクは次のようになります。

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

しかし、実際には次のようになります。

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

私が変更され gulp.watchソースから./assets/**/*.scss

7
Nizamil Putra

GULP 4.Xで

関数を渡す必要があります。 gulp 4.xでこれを行う通常の方法は、1つのタスク名のみでgulp.series()呼び出しを渡すことです。これは、指定されたタスクのみを実行する関数を返します。

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