Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Gulp watcher и Babel. Как компилировать только измененный файл? (https://javascript.ru/forum/offtopic/58496-gulp-watcher-i-babel-kak-kompilirovat-tolko-izmenennyjj-fajjl.html)

FINoM 25.09.2015 13:16

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/'));
	}
});

Вяглядит уродливо, как по мне.

kobezzza 25.09.2015 13:46

Для инкрементальной сборки есть ряд хороших плагинов:

https://github.com/gulpjs/gulp#incremental-builds

Для запуска CLI API модулей есть хороший плагин: gulp-run.

Также следует заметить, что у встроенного вотчера галпа есть ряд проблем, например он не аттачит новые файлы, поэтому лучше юзать плагины вроде gulp-watch.

ТОТ_САМЫЙ 25.09.2015 13:55

А я вот встроил кэширование в свой плагин gulp-image-master
и он оптимизирует только изменившиеся фотки ^_^, чуто пожже я вам о нем расскажу

FINoM 25.09.2015 16:36

kobezzza, о, спасибо. Воспользовался gulp-changed.
Цитата:

Сообщение от ТОТ_САМЫЙ
А я вот встроил кэширование в свой плагин gulp-image-master

А я сегодня утром бутер съел с томатным соком.

nerv_ 25.09.2015 16:50

kobezzza, спасибо, будем знать :)

Цитата:

Сообщение от FINoM
А я сегодня утром бутер съел с томатным соком.

:D

ТОТ_САМЫЙ 25.09.2015 17:26

Цитата:

Сообщение от FINoM
А я сегодня утром бутер съел с томатным соком.

Это я ктому что берешь и форкаешь плагин и добавляешь кэширование, в чем проблема? КЭШ хранишь в замыкании модуля nodejs

FINoM 27.09.2015 15:09

ТОТ_САМЫЙ, ты думаешь, что после того, что ты мне наговорил, я буду форкать твои проекты? Нет. И всех призываю даже не реагировать на твои разработки (хотя, я сомневаюсь, что кто-то хоть что-то использует из того, что ты сделал).

ТОТ_САМЫЙ 27.09.2015 20:44

FINoM, ага, особенно это https://www.npmjs.com/package/gulp-commonjs-wrapper
и это https://www.npmjs.com/package/gulp-svg-to-css


Не смотря на то что я не приемлю культурные рамки вроде "мат это плохо" или "Обзывать это плохо", ну или "Детям вреден секс", и считаю что ни мата ни обзываний не существует. То, что я талантливый программист, это факт... Относить хотя бы к этому обьективно.

FINoM 27.09.2015 21:00

Цитата:

Сообщение от ТОТ_САМЫЙ
То, что я талантливый программист, это факт... Относить хотя бы к этому обьективно.

Когда я вижу обрыганного панка, я считаю его обрыганным панком, хотя он может считать себя гениальным музыкантом.

С тобой так же: за неадекватным поведением я не могу разглядеть твой талант. Я вижу обычного программиста с массой нерешенных психологических проблем.

А за ссылки спасибо. К треш-продуктам mail.ru, которые я бойкотирую, добавились и твои.

ТОТ_САМЫЙ 27.09.2015 21:04

Цитата:

Сообщение от FINoM
С тобой так же: за неадекватным поведением я не могу разглядеть твой талант. Я вижу обычного программиста с массой нерешенных психологических проблем.

А за ссылки спасибо. К треш-продуктам mail.ru, которые я бойкотирую, добавились и твои.


https://ru.wikipedia.org/wiki/Ad_hominem ничего необычного, быдло всегда предвзято и мыслит шаблонами


Часовой пояс GMT +3, время: 10:34.