Gulp"观看"没有运行子任务" sass"在文件更改

时间:2015-02-13 02:50:30

标签: gulp gulp-watch gulp-sass

我正在使用Gulp进行手表和sass编译器。当我开始"观看"第一次然后" sass" complier运行并根据给定的路径创建css文件。但是,当我更改.scss文件时,它并没有调用" sass"再次编译。以下是我的这两个任务和变量。

gulp.task('sass', function () {
    gulp.src(config.sassPath)
        .pipe(sass())
        .pipe(gulp.dest(config.cssPath))
        .pipe(livereload());
});

gulp.task('watch', false, function () {
    livereload.listen(8189);
    gulp.src(config.watchPaths)
            .pipe(watch(config.watchPaths, function (event) {
                gulp.start( 'sass', 'js-hint', 'server','test');
                livereload();
            }))
            .pipe(livereload());
});

按照以下命令运行"观看"任务

gulp watch

我确实看到"观看"我正在更改.scss文件时重新加载。以下是此日志。

[19:49:30] public/sass/html-controls.scss was changed
[19:49:30] /Users/dkuma204/Desktop/Dilip/Projects/OPEN/SourceCode/AWF/OPENApp/application/public/sass/html-controls.scss reloaded.

不确定我在这里缺少什么。请帮忙。

1 个答案:

答案 0 :(得分:1)

为什么这么复杂?试试这个:

gulp.task('watch', false, function () {
    livereload.listen(8189);
    gulp.watch(config.watchPaths,['sass', 'js-hint', 'server', 'test'])       
});

你的每一项需要livereload的任务都应该在最后有.pipe(livereload())。 你不应该使用gulp start。以下是github discussion的评论之一:

  

gulp.start故意没有记录,因为它可以导致   复杂的构建文件,我们不希望人们使用它