Пытаюсь настроить Gulp. Хочу сделать таск "watch:all", который будет прослушивать и стили (SASS) и скрипты. Проблема в том, что все решения, которые есть в интернете, сводятся к тому, что Gulp слушает изменения во всех целевых файлах, и, если изменение произошло, компилирует все целевые файлы, а не тот, который изменился. При большом количестве модулей, компиляция может занять несколько секунд. Это раздражает, так как я обычно переключаюсь между редактором и браузером не более чем за полсекунды.
Здесь сильно выигрывает комманда
babel watch. Она, как и нужно, компилирует только измененный файл. Получается, что имея Gulp, я по-прежнему должен запускать сторонние команды и, в качестве бонуса, запускать вотчер стилей в другой вкладке терминала. Абсурд.
Есть ли идеи, как реализовать вотчер наиболее элегантно?
Раньше пользовался Grunt, но меня подкупила скорость и элегантность Gulp.
Из проекта в проект копировал туда-сюда такой код:
grunt.event.on('watch', function(action, filepath) {
if (~filepath.indexOf('.es')) {
grunt.config(['babel', 'single', 'files'], [{
src: filepath,
dest: filepath.replace('src/', 'js/').replace('.es', '.js')
}]);
} else if (~filepath.indexOf('.js')) {
grunt.file.delete(filepath.replace('src/', 'js/'));
grunt.file.copy(filepath, filepath.replace('src/', 'js/'));
}
});
Вяглядит уродливо, как по мне.