Gulp加速SASS编译

4

我正在使用带有livereload的Gulp来编译我的sass。自从我将Compass添加到我的构建中,每次更改后,sass任务需要长达5秒才能完成。

我已经阅读了各种缓存插件,例如gulp-cached,但我无法让它起作用。当我添加gulp-cached时,编译时间降低到约20毫秒,并且它只处理已更改的sass部分,但是其余的sass任务并未运行。

这是我的SASS任务:

gulp.task('styles', function () {
    return gulp.src( paths.scss )
        .pipe( cache( 'sass' ) )
        .pipe( scss( options.scss ).on( 'error', gutil.log ) )
        .pipe( autoprefix( options.autoprefix ) )
        .pipe( gulp.dest( dests.css ) )
        .pipe( livereload() )
        .pipe( notify( { message: 'CSS task complete.' } ) );
});

这是我的完整gulpfile,可以在这里找到:http://hastebin.com/oxuxegayoj.coffee

缓存插件应该与sass编译一起工作吗?或者说这就是它的工作方式?


https://github.com/hitmands/gulp-sass-pedigree - Hitmands
1个回答

9
你在gulp中使用缓存的原因是为了避免不必要的文件处理。如果你有一个任务,获取一组图片并将其转换或压缩,你不希望每次更改其中一个图片时都运行该任务。缓存插件可以通过仅传递已更改的文件来确保此操作。
但是这种方法不适用于Sass或任何其他需要将多个文件合并为一个文件的内容,因为它将忽略编译结果中未更改的文件。
Sass确实有自己的缓存机制,因此即使gulp缓存可以工作,使用它的优势也会成问题。

我怀疑这就是情况。谢谢你的回答! - Brigante

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接