我试图弄清楚如何观察SCSS文件的更改,然后只为那些更改(添加,删除)及其依赖项(@import)运行任务(gulp-ruby-sass)。
我的观察任务代码是:
gulp.task('sass-watch', function(){
gulp.watch('dev/scss/*.scss', ['sass']);
});
我的" sass"任务代码是:
gulp.task('sass', function(event) {
return sass('dev/scss/*.scss')
.pipe(changed('dist/css'))
.on('error', sass.logError)
.pipe(gulp.dest('dist/css'));
});
无论如何,Sice sass将所有文件都放在文件夹中,这不能像我想的那样工作,但我注意到有趣的事情。在我的命令行中,我得到了以下日志,当" sass-watch"由保存style2.scss
文件触发。
[13:38:01] Using gulpfile C:\1HLAVNI\Lukas\Webdesign\lukasradek\gulpfile.js
[13:38:01] Starting 'sass-watch'...
[13:38:01] Finished 'sass-watch' after 42 ms
[13:38:03] Starting 'sass'...
[13:38:03] write ./\style_combined.css
[13:38:03] write ./\style2.css
[13:38:03] Finished 'sass' after 416 ms
Something记录write style_combined.css and style2.css
,这正是依赖关系的方式。 (styl2.scss导入到style_combined.scss)。所以这意味着,有些东西知道如何设置依赖项。问题是,我不知道那是什么东西。我无法在其他地方获得该信息,仅在最终日志中。如果我可以在代码中的某处获取该信息,我将能够用于仅针对已更改的文件和依赖项触发任务。
任何想法,可能会发出哪些日志?
我试图将我的代码剥离到最低限度,即使我删除了" sass"的内容,日志仍然存在。任务。从['sass']
移除gulp.watch
触发器后,日志消失了。