我有这个gulp任务:
gulp.task('css', function() {
return gulp.src( [CONFIG.css.source + '/**/*.scss'].concat(CONFIG.css.ignore) )
.pipe( watch([CONFIG.css.source + '/**/*.scss'].concat(CONFIG.css.ignore)) )
.pipe( sass({errLogToConsole: true}) )
.pipe( gulp.dest(CONFIG.css.dest) )
});
通过此任务,我可以观看.scss文件并在其上应用sass。问题是当我使用@import partial.scss
时。这些部分不会被监视,所以我每次都要保存部分文件,然后保存主要的style.scss文件(调用导入文件),以便启动任务。
如何查看导入,而不必保存导入和导入程序scss文件?
为简单起见,我们说我有一个 style.scss 文件,可以导入 partials / partial.scss 。当我编辑并保存部分内容时,只应运行 style.scss 上的任务。
备注:
CONFIG.css.ignore
是partials文件夹的路径(以这种方式,它们不会被直接观看并保存在错误的文件夹中),但这也会导致部分不被监视的问题..
答案 0 :(得分:2)
我建议/使用稍微不同的方法。我有一个独立的任务来启动观察者,例如:
var pathToAllScssIncludingPartials = '/**/*.scss';
gulp.task('watchStyles', [], function() {
gulp.watch(pathToAllScssIncludingPartials, ['css']);
});
只要输入文件发生变化,就会启动'css'
。不再需要在watch
任务中执行任何css
内容。