2014-06-20 106 views
4

我正在使用Gulp和livereload來編譯我的sass。由於每次我進行更改時都會將Compass添加到我的構建中,因此sass任務需要5秒才能完成。吞吐加速SASS編譯

我讀過關於各種緩存插件,如,但我無法讓它工作。當我添加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

應該緩存插件與青菜編制工作,或者這是它如何工作?

+0

https://github.com/hitmands/gulp-sass-pedigree – Hitmands

回答

9

爲什麼你在gulp中使用緩存的原因是不需要處理文件。如果您有任務獲取圖像文件夾並將其轉換或壓縮,則不必在每次更改圖像時都運行所有圖像。緩存插件通過反饋已更改的文件來確保這一點。

這不適用於Sass或其他任何將多個文件轉換爲一個文件的內容,因爲它只會忽略編譯結果中未更改的文件。

儘管Sass確實擁有自己的緩存,所以使用gulp緩存的好處即使有效也是有問題的。

+0

我懷疑是這種情況。感謝您的回答! – Brigante