【发布时间】:2015-05-14 04:37:48
【问题描述】:
我有一个项目,其中有大约 30 个 css 主题。这意味着我有下一个 css 文件结构:
src/
themes/
default/
a.scss
b.scss
rockStar/
a.scss
b.scss
oneMoreTheme/
a.scss
b.scss
dist/
themes/
default/
styles.css
rockStar/
styles.css
oneMoreTheme/
styles.css
这里只是 gulpfile 的例子:
var gulp = require('gulp'),
glob = require('glob'),
path = require('path'),
_ = require('underscore'),
$ = require('gulp-load-plugins')(),
options = {};
options.themes = [
'default',
'rockStar',
'oneMoreTheme'
];
gulp.task('styles', function () {
_.each(options.themes, function(themeName, themeKey) {
gulp.src('src/themes/' + themeName + '/**/*.scss')
.pipe($.concat('styles.scss'))
.pipe($.sass())
.pipe(gulp.dest('dist/themes/' + themeName + '/'));
});
});
gulp.task('watch', function () {
gulp.watch('src/**/*.*', ['styles']);
});
在我的 gulp 文件中,我有一个任务“styles”,它编译来自每个主题的 scss 文件并将编译后的文件放入 dist 文件夹。 当任何 scss 文件形成任何源主题更改时,我有任务“watch”运行“styles”任务。它有效,但由于主题很多,它需要很长时间! 我的任务“监视”如何检测哪些主题文件发生了变化并仅为这个更改的主题运行任务“样式”?
【问题讨论】:
-
你使用哪个插件?
gulp-ruby-sass还是gulp-sass?这实际上是一个大问题,bc Sass 捆绑了您的文件,因此您没有从源文件到目标文件的直接连接。gulp-ruby-sass但是已经有一个很好的缓存。也许你也可以向我们展示你的 Gulpfile -
我更新了我的问题,你可以看到我的 gulpfile(例如我现在做的,没有测试它,这只是让你理解我的意思的例子)。
标签: gulp gulp-watch