0

我将 Gulp 用于 watch 和 sass 编译器。当我第一次启动“watch”时,“sass”编译器运行并根据给定路径创建 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.

不知道我在这里缺少什么。请帮忙。

4

1 回答 1

1

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

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

你的每一个需要 livereload 的任务最后都应该有 .pipe(livereload()) 。你不应该使用 gulp start。这是来自 github讨论的评论之一:

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

于 2015-02-13T11:15:33.507 回答