如何使用gulp-ruby-sass缓存Sass文件?它似乎应该是一个默认选项,但这并没有发生。我一定错过了什么。
当watch
任务运行时,每次我在 app / styles / main.scss 中更改内容时,gulp-ruby-sass
将不必要地再次编译Bootstrap的Sass,占用 4-5秒。
我的 app / styles / main.scss 文件如下所示:
// MY PROJECT DEFAULTS
@import “my_project/variables";
// bower:scss
@import "../bower_components/bootstrap-sass-official/vendor/assets/stylesheets/bootstrap.scss";
// endbower
// ...
gulpfile.js 是在2014-11-25使用 generator-gulp-webapp 0.1.0 生成的,链接到git repo的主分支。< / p>
样式功能:
gulp.task('styles', function () {
return gulp.src('app/styles/main.scss')
.pipe($.plumber())
.pipe($.rubySass({
style: 'expanded',
precision: 10
}))
.pipe($.autoprefixer({browsers: ['last 1 version']}))
.pipe(gulp.dest('.tmp/styles'));
});
正在创建 .sass-cache 文件夹,其文件夹包含main.scssc
以及Bootstrap的部分文件。
更新
到目前为止,我已经找到了两种解决方案(不是用于缓存,但是为了更快的编译时间):
1)gulp-ruby-sass version 1.0(alpha),它更快,适用于源图。似乎很快就会被释放。 Check this
2)gulp-sass使用C / C ++并且它非常快,但没有一些功能。
答案 0 :(得分:0)
我希望您的问题与https://github.com/sindresorhus/gulp-ruby-sass/issues/111相关。虽然此问题仍处于开放状态,但在使用generator-gulp-webapp 0.3.0
(和gulp-ruby-sass 1.0.1
与Sass 3.4.13(选择性史蒂夫))时,我无法确认您的问题。
generator-gulp-webapp 0.3.0
附带gulp-sass
。在使用Sass和Bootstrap安装gulp-webapp之后,我将如下替换styles
任务:
gulp.task('styles', function () {
return $.rubySass('app/styles/main.scss')
.on('error', function (err) {
console.error('Error!', err.message);
})
.pipe(gulp.dest('.tmp/styles'))
.pipe(reload({stream: true}));
});
更改main.scss
后,watch
任务运行并输出:
[BS] 1 file changed (main.css)
[15:53:17] Finished 'styles' after 20 s
现在.sass-cache
文件夹的内容如下所示:
/.sass-cache$ ls -la
total 24
drwxrwxr-x 6 bass bass 4096 Apr 13 15:40 .
drwxrwxr-x 9 bass bass 4096 Apr 13 15:48 ..
drwxrwxr-x 2 bass bass 4096 Apr 13 15:40 721aed65acc825809156d020625072c6ea20be50
drwxrwxr-x 2 bass bass 4096 Apr 13 15:40 b311c6377fb599f57cc8c0d0c360c9b83a27e34b
drwxrwxr-x 2 bass bass 4096 Apr 13 15:40 d1eb2de86ef2be3a4571ad5415b5156c01618faf
drwxrwxr-x 2 bass bass 4096 Apr 13 15:53 e2b546d387a82bc59b03d84e84d775c05a23ac82
据我所知,只有e2b546d387a82bc59b03d84e84d775c05a23ac82
已被更改,其中只包含main.scss
的缓存版本。