Как стать автором
Обновить

Комментарии 11

gulp.watch при изменении любого файла будет полностью пересобирать скрипты. При 2-х файлах это нормально. А если файлов 100? А если каждый из них прогоняется через babel? Инкрементальная сборка маст хев.

livereload стили применяет также с перезагрузкой страницы? Применение новых стилей без перезагрузки страницы маст хев.

И да, пересаживайтесь на webpack (говорю, как человек, который долгое время сидел на gulp)
Для того чтобы не пересобирать все файлы есть плагин gulp-changed (ну если только конечно вы в один файл все не компилите)
Ок, а что будет происходить, если вы файл удалили? Сначала собрали с ним, потом решили переименовать. Или совсем он вам не нужен. Что будет в этом случае?
Еще интересный вопрос — есть у вас 10 вендорных библиотек. В каждой по css-файлу. В каждом css-файле ссылки на изображения и шрифты. Где-то шрифты лежат в ../fonts, где-то в ./fonts, где-то прямо в ./, то же самое с картинками.
Как будете собирать весь вендорный css в один файл, чтобы пути не поломать?
Для обработки ошибок есть gulp-plumber.
1. Проверку переданных аргументов удобно делать так же при помощи плагина gulp-util, помимо этого там есть еще набор приятных вкусняшек.
2. Livereload'ов на свете много развелось, мне очень нравится browser-sync. Про использование в разных окружениях, в т.ч. с gulp, можно почитать тут. Там тоже много хороших возможностей, например, синхронизация действий в разных браузерах, возможность открывать сайт на разных машинах в пределах локальной сети и еще много разного.
3. Про перехват ошибок уже выше написали — gulp-plumber для этого хорош.

И еще — постарайтесь не держать все таски в одном файле, а для каждого создавать отдельный, а в основном gulpfile.js реквайрить директорию с тасками — так будет проще переносить их из проекта в проект, оставляя только нужные в каждом конкретном случае.
А еще вы однажды можете столкнуться с проблемами со стандартным gulp'овским вотчером (не будет следить за вновь созданными файлами, удаленными, например) — тогда обратите внимание на chokidar.
Есть несколько нерешённых проблем. С watch — проблема при сборке более одного файла за один цикл «смотрения». Т.е загружаем 2 файла — сборка отрабатывает одновременно дважды, всё херится(чаще всего).
Вторая проблема — после того как вся сборка выполнилась ещё некоторое время что-то происходит. Я _догадываюсь_ что это — выгрузка из памяти на диск, но этот период довольно большой и никакой индикации я так и не настроил.

Ну и бонусом — я так и не понял как следить за репозиторием, Mercurial там или Git, что бы на продакшене пересборку после пуша в мастер обновлять.
Gulp — это система сборки проекта, на продакшне обычно его задача — просто собрать конечные файлы и остановиться, а вотчеры используются для разработки. Если нужно следить за репозиторием, то можно написать bash-скрипт, который при изменениях будет запускать gulp для пересборки. Можно, например, вот это допилить под себя.
Никто не мешает настроить git hooks в случае использвоания одноименной СКВ, возможно что в других СКВ есть аналогичный функционал.
А я порекомендую свое детище — TARS. К тому же вы сможете с легкостью встроить все свое в него. Или наоборот, что-то вытащите для себя из него.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации