Gulp watcher и Babel. Как компилировать только измененный файл?
Пытаюсь настроить 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/')); } }); Вяглядит уродливо, как по мне. |
Для инкрементальной сборки есть ряд хороших плагинов:
https://github.com/gulpjs/gulp#incremental-builds Для запуска CLI API модулей есть хороший плагин: gulp-run. Также следует заметить, что у встроенного вотчера галпа есть ряд проблем, например он не аттачит новые файлы, поэтому лучше юзать плагины вроде gulp-watch. |
А я вот встроил кэширование в свой плагин gulp-image-master
и он оптимизирует только изменившиеся фотки ^_^, чуто пожже я вам о нем расскажу |
kobezzza, о, спасибо. Воспользовался gulp-changed.
Цитата:
|
kobezzza, спасибо, будем знать :)
Цитата:
|
Цитата:
|
ТОТ_САМЫЙ, ты думаешь, что после того, что ты мне наговорил, я буду форкать твои проекты? Нет. И всех призываю даже не реагировать на твои разработки (хотя, я сомневаюсь, что кто-то хоть что-то использует из того, что ты сделал).
|
FINoM, ага, особенно это https://www.npmjs.com/package/gulp-commonjs-wrapper
и это https://www.npmjs.com/package/gulp-svg-to-css Не смотря на то что я не приемлю культурные рамки вроде "мат это плохо" или "Обзывать это плохо", ну или "Детям вреден секс", и считаю что ни мата ни обзываний не существует. То, что я талантливый программист, это факт... Относить хотя бы к этому обьективно. |
Цитата:
С тобой так же: за неадекватным поведением я не могу разглядеть твой талант. Я вижу обычного программиста с массой нерешенных психологических проблем. А за ссылки спасибо. К треш-продуктам mail.ru, которые я бойкотирую, добавились и твои. |
Цитата:
https://ru.wikipedia.org/wiki/Ad_hominem ничего необычного, быдло всегда предвзято и мыслит шаблонами |
Часовой пояс GMT +3, время: 10:34. |