Gulp Watch无法正常工作

Niz*_*tra 9 javascript node.js compass-sass gulp

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

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

});
Run Code Online (Sandbox Code Playgroud)

小智 31

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

gulp.task('default', function() {
    gulp.start('compass');
    gulp.start('watch');
});
Run Code Online (Sandbox Code Playgroud)

但它应该看起来像:

gulp.task('default', ['compass', 'watch']);
Run Code Online (Sandbox Code Playgroud)

  • 你怎么知道?他可以从命令行调用`gulp watch`. (10认同)

Niz*_*tra 7

我改变了gulp.watch源代码./assets/**/*.scss


Nis*_*hah 5

吞咽 4.X

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

gulp.task('watch', function() {
  gulp.watch('./assets/scss/*.scss', gulp.series('compass'))
});
Run Code Online (Sandbox Code Playgroud)