Successfully reported this slideshow.
Your SlideShare is downloading. ×

Around the Gulp — Андрей Яманов — MoscowJS 13

Around the Gulp — Андрей Яманов — MoscowJS 13

Download to read offline

История перехода с Grunt на Gulp в крупном проекте. Краткий обзор плагинов, решение типовых (и не очень) задач с их помощью.

История перехода с Grunt на Gulp в крупном проекте. Краткий обзор плагинов, решение типовых (и не очень) задач с их помощью.

More Related Content

Slideshows for you

More from MoscowJS

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Around the Gulp — Андрей Яманов — MoscowJS 13

  1. 1. tenphi.me
  2. 2. безусловный лидер среди подобных решений (2013 год) упрощает разработку и управление задачами добавляет продвинутый livereload простой и понятный подход огромное количество плагинов и легко написать свой всё хорошо документировано легко интегрируется с системой зависимостей одно решение для многих задач
  3. 3. 600+ строчек кода Росло кол-во задач. Код превращался в помойку. Его становилось сложно поддерживать. Многое тормозило
  4. 4. выполняется синхронно запускает задачи в отдельном процессе каждая задача выполняется в отдельном процессе каждая задача по факту перезапускает gruntfile
  5. 5. Boilerplate (grunt » gulp) + express + angular gulpfile ~100 строк 3-4 часа на миграцию plugins: gulp-util, gulp-watch, gulp-connect, gulp-plumber, gulp-rename, gulp-size, gulp-rev, gulp-fingerprint, gulp-clean, gulp-usemin, gulp-minify-css, gulp-minify-html, gulp-uglify, gulp-imagemin, gulp-html2js, gulp-ngmin
  6. 6. код стал намного чище функционал одной задачи четко локализован кол-во кода уменьшилось watch стал работать более отзывчиво многие плагины были заменены на обычные nodejs-модули красивый лог :) (плюс) комплексный сценарий задач был реализован с помощью уже существующих плагинов
  7. 7. Асинхронность не всегда хорошо (решение: run-sequence) Streams - намного сложнее прямой работы с файлами Очень плохо документировано (в том числе большинство плагинов) Сложнее написать свой плагин
  8. 8. Доставка контента (+watch) Тестирование (+watch) Сборка
  9. 9. реализуется напрямую через nodejs-модули: express, connect и т.д. хороший пример реализации livereload через tiny-url: gist.github.com/aslansky/8741515
  10. 10. gulp-karma? Вероятно, нет. Разработчики karma предлагают использовать API напрямую и почитать замечательную статью Why you shouldn't create a gulp plugin
  11. 11. многие популярные плагины не имеют полной поддержки потоков большинство компиляторов: less, coffee и т.д. возможны проблемы с генерацией sourceMaps сборка и версионирование файлов комплексная задача
  12. 12. Простые сценарии описываются тривиально gulp.task('compile', function(){ gulp.src(scriptFiles) .pipe(concat({fileName: pkg.name+".js"}) .pipe(minify()) .pipe(gulp.dest('./dist/')); });
  13. 13. (продвинутый gulp-fingerprint) http://github.com/tenphi/gulp-revplace Полная поддержка потоков Поиск asset'ов по исходному коду с помощью regexp'а Генерация новых путей для asset'ов и замена их в исходном коде Выгрузка всех найденных asset'ов в конечную директорию в стадии разработки, но текущая версия достаточно функциональна
  14. 14. полезные ссылки: github.com/gulpjs/ blog.ponyfoo.com/2014/01/27/my-first-gulp-adventure slides.com/contra/gulp github.com/substack/stream-handbook мои контакты: @tenphi tenphi@gmail.com github.com/tenphi

×