Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
tenphi.me
безусловный	лидер	среди	подобных	решений	(2013	год)
упрощает	разработку	и	управление	задачами
добавляет	продвинутый	livere...
600+	строчек	кода
Росло	кол-во	задач.
Код	превращался	в	помойку.
Его	становилось	сложно	поддерживать.
Многое	тормозило
выполняется	синхронно
запускает	задачи	в	отдельном	процессе
каждая	задача	выполняется	в	отдельном	процессе
каждая	задача	п...
Boilerplate
(grunt	»	gulp)	+	express	+	angular
gulpfile	~100	строк
3-4	часа	на	миграцию
plugins:
gulp-util,	gulp-watch,	gul...
код	стал	намного	чище
функционал	одной	задачи	четко	локализован
кол-во	кода	уменьшилось
watch	стал	работать	более	отзывчив...
Асинхронность	не	всегда	хорошо	(решение:	run-sequence)
Streams	-	намного	сложнее	прямой	работы	с	файлами
Очень	плохо	докум...
Доставка	контента	(+watch)
Тестирование	(+watch)
Сборка
реализуется	напрямую	через	nodejs-модули:
express,	connect	и	т.д.
хороший	пример	реализации	livereload	через	tiny-url:
gis...
gulp-karma?	
Вероятно,	нет.
Разработчики	karma	предлагают	использовать	API	напрямую	и
почитать	замечательную	статью
Why	yo...
многие	популярные	плагины	не	имеют	полной	поддержки
потоков
большинство	компиляторов:	less,	coffee	и	т.д.
возможны	проблемы...
Простые	сценарии	описываются	тривиально
gulp.task('compile',	function(){
		gulp.src(scriptFiles)
				.pipe(concat({fileNam...
(продвинутый	gulp-fingerprint)
http://github.com/tenphi/gulp-revplace
Полная	поддержка	потоков
Поиск	asset'ов	по	исходному	...
полезные	ссылки:
github.com/gulpjs/
blog.ponyfoo.com/2014/01/27/my-first-gulp-adventure
slides.com/contra/gulp
github.com/s...
Around the Gulp — Андрей Яманов — MoscowJS 13
Around the Gulp — Андрей Яманов — MoscowJS 13
Around the Gulp — Андрей Яманов — MoscowJS 13
Around the Gulp — Андрей Яманов — MoscowJS 13
Upcoming SlideShare
Loading in …5
×

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

976 views

Published on

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

Published in: Internet
  • Be the first to comment

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

×