Gulp加速SASS编译

时间:2014-06-20 07:49:25

标签: sass gulp

我正在使用Gulp进行livereload来编译我的sass。由于我每次进行更改时都将Compass添加到构建中,因此sass任务最多需要5秒才能完成。

我已经阅读了各种缓存插件,例如gulp-cached,但我无法让它工作。当我添加gulp-cached时,compliation时间下降到大约20ms,它只处理已更改的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编译一起使用,或者它应该如何工作?

1 个答案:

答案 0 :(得分:9)

在gulp中使用缓存的原因是不必要地处理文件。如果您有一个获取图像文件夹并对其进行转换或压缩的任务,则无论何时更改图像,都不希望所有图像都运行。缓存插件通过仅提供已更改的文件来确保这一点。

这不适用于Sass或任何其他将多个文件连接成一个文件的内容,因为它只会忽略编译结果中未更改的文件。

Sass确实拥有它自己的缓存,所以即使它有用,使用gulp缓存的优势也是值得怀疑的。