1

我试图弄清楚如何观察 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 都会将所有文件放在文件夹中,这不能按我的意愿工作,但我注意到有趣的事情。style2.scss在我的命令行中,当保存文件触发“sass-watch”时,我得到以下日志。

[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

某些记录write style_combined.css and style2.css正是依赖关系的方式。(styl2.scss 被导入到 style_combined.scss)。所以这意味着,有些东西知道依赖项是如何设置的。问题是,我不知道那是什么东西。我无法在其他地方获得该信息,只能在最终日志中获得。如果我可以在代码中的某处获得该信息,我将能够仅用于为更改的文件和依赖项触发任务。

任何想法,什么可能会发出这些日志?

我试图将我的代码剥离到最低限度,即使我删除了“sass”任务的内容,日志仍然存在。['sass']删除触发器后,日志消失了gulp.watch

4

0 回答 0