SlideShare a Scribd company logo
1 of 12
Download to read offline
Gulp 
Vojta Grec / Keyup
O co jde? 
• Build systém pro web 
• Automatizace opakujících se tasků 
• Preprocessing CSS/Coffeescript/… 
• Minifikace CSS/JS/… 
➡ Ulehčení toho, co stejně děláte.
Grunt 
• Vytvořen: 2012 
• Poslední commit: měsíc(e) 
• Konfigurace > kód 
• Sekvenční provádění 
• Filesystem based 
• „Kitchen sink“ 
• 3600+ pluginů 
Gulp 
• Vytvořen: 2013 
• Poslední commit: dny 
• Kód > konfigurace 
• Paralelní provádění 
• Stream based 
• Unix-like 
• 700+ pluginů 
• Postaveno nad node.js
Grunt Gulp 
grunt.initConfig({ 
sass: { 
dist: { 
files: [{ 
cwd: 'app/styles', 
src: '**/*.scss', 
dest: '../.tmp/styles', 
expand: true, 
ext: '.css' 
}] 
} 
}, 
autoprefixer: { 
options: ['last 1 version'], 
dist: { 
files: [{ 
expand: true, 
cwd: '.tmp/styles', 
src: '{,*/}*.css', 
dest: 'dist/styles' 
}] 
} 
}, 
watch: { 
styles: { 
files: ['app/styles/{,*/}*.scss'], 
tasks: ['sass:dist','autoprefixer:dist'] 
} 
} 
}); 
grunt.registerTask('default', 
['styles','watch']); 
var sass = require('gulp-sass'); 
var autoprefixer = 
require('gulp-autoprefixer'); 
gulp.task('sass', function () { 
gulp.src('app/styles/**/*.scss') 
.pipe(sass()) 
.pipe(autoprefixer('last 1 version')) 
.pipe(gulp.dest('dist/styles')); 
}); 
gulp.task('default', function() { 
gulp.run('sass'); 
gulp.watch('app/styles/**/*.scss', 
function() { 
gulp.run('sass'); 
}); 
});
• Příkazy:
• Příkazy: 
• task 
// Create task 
gulp.task('name', ['deps'], function(done) { 
return stream || promise; 
// ...or call done() 
});
• Příkazy: 
• task 
• src // Returns a readable stream 
gulp.src(['src/**/*.js', '!src/**/*.spec.js'])
• Příkazy: 
• task 
• src 
• dest 
// Writes stream contents 
// into files 
gulp.src('src') 
.pipe(...) 
.pipe(gulp.dest('dist'));
• Příkazy: 
• task 
• src 
• dest 
• watch // Runs tasks when files change 
gulp.watch('src/**/*.js', ['compile']);
• Příkazy: 
• task 
• src 
• dest 
• watch 
• pipe (z node.js streamů)
Conclusions 
• Určitě chceme používat (kde má smysl) 
• Pro frontendisty dnes součást toolboxu 
• Gulp má větší budoucnost než Grunt 
• Pojďme vyzkoušet Gulp 
• http://gulpfiction.divshot.io pomůže
Díky za pozornost :-) 
(a díky Tomáši Holasovi ze Socialbakers za jeho 
přednášku na Webexpo (http://goo.gl/ZCnH2y), 
kterou jsem značně vykradl ;-) )

More Related Content

Similar to Keyup presentation about Gulp

ClojureScript
ClojureScriptClojureScript
ClojureScriptjakubkoci
 
Optimalizace webových aplikací
Optimalizace webových aplikacíOptimalizace webových aplikací
Optimalizace webových aplikacíVašek Purchart
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitněJiří Mareš
 
Jak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.com
Jak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.comJak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.com
Jak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.comWebScience1
 
Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)
Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)
Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)Martin Cerveny
 
Czech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise SystemCzech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise SystemMartin Cerveny
 
Workshop 2018 11-30 - Představení drupalu 8
Workshop 2018 11-30 - Představení drupalu 8Workshop 2018 11-30 - Představení drupalu 8
Workshop 2018 11-30 - Představení drupalu 8Radim Klaška
 
Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Tomáš Kukol
 
.NET v SQL Serveru
.NET v SQL Serveru.NET v SQL Serveru
.NET v SQL ServeruJan Drozen
 
Představení Drupalu 8
Představení Drupalu 8Představení Drupalu 8
Představení Drupalu 8Radim Klaška
 
WordCamp Praha 2017 - Martin Hlaváč
WordCamp Praha 2017 - Martin HlaváčWordCamp Praha 2017 - Martin Hlaváč
WordCamp Praha 2017 - Martin HlaváčBrilo Team
 

Similar to Keyup presentation about Gulp (20)

ClojureScript
ClojureScriptClojureScript
ClojureScript
 
TNPW2-2014-03
TNPW2-2014-03TNPW2-2014-03
TNPW2-2014-03
 
Django
DjangoDjango
Django
 
TNPW2-2016-03
TNPW2-2016-03TNPW2-2016-03
TNPW2-2016-03
 
Optimalizace webových aplikací
Optimalizace webových aplikacíOptimalizace webových aplikací
Optimalizace webových aplikací
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 
CSS preprocesory
CSS preprocesoryCSS preprocesory
CSS preprocesory
 
Jak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.com
Jak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.comJak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.com
Jak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.com
 
Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)
Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)
Czech Oracle Solaris Administrators Day 2011 - Solaris Express (OpenSolaris)
 
TNPW2-2013-03
TNPW2-2013-03TNPW2-2013-03
TNPW2-2013-03
 
Composer / Posobota
Composer / PosobotaComposer / Posobota
Composer / Posobota
 
Czech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise SystemCzech Sun Training Day 2008 - Java Enterprise System
Czech Sun Training Day 2008 - Java Enterprise System
 
Workshop 2018 11-30 - Představení drupalu 8
Workshop 2018 11-30 - Představení drupalu 8Workshop 2018 11-30 - Představení drupalu 8
Workshop 2018 11-30 - Představení drupalu 8
 
Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]
 
.NET v SQL Serveru
.NET v SQL Serveru.NET v SQL Serveru
.NET v SQL Serveru
 
Představení Drupalu 8
Představení Drupalu 8Představení Drupalu 8
Představení Drupalu 8
 
WordCamp Praha 2017 - Martin Hlaváč
WordCamp Praha 2017 - Martin HlaváčWordCamp Praha 2017 - Martin Hlaváč
WordCamp Praha 2017 - Martin Hlaváč
 
Nástěnka 02
Nástěnka 02Nástěnka 02
Nástěnka 02
 
TNPW2-2012-03
TNPW2-2012-03TNPW2-2012-03
TNPW2-2012-03
 
Drupal Front-end
Drupal Front-endDrupal Front-end
Drupal Front-end
 

More from Keyup

Unity
UnityUnity
UnityKeyup
 
Google AdWords a Google AdSense vs. AdBlock.
Google AdWords a Google AdSense vs. AdBlock.Google AdWords a Google AdSense vs. AdBlock.
Google AdWords a Google AdSense vs. AdBlock.Keyup
 
WinJS
WinJSWinJS
WinJSKeyup
 
Redux+React
Redux+ReactRedux+React
Redux+ReactKeyup
 
Garbage Collection in Java
Garbage Collection in JavaGarbage Collection in Java
Garbage Collection in JavaKeyup
 
CSS flexbox
CSS flexboxCSS flexbox
CSS flexboxKeyup
 
Magento 2
Magento 2Magento 2
Magento 2Keyup
 
Silex
SilexSilex
SilexKeyup
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on railsKeyup
 
HHVM & Hack
HHVM & HackHHVM & Hack
HHVM & HackKeyup
 
Icinga2
Icinga2Icinga2
Icinga2Keyup
 
O auth2
O auth2O auth2
O auth2Keyup
 
Úvod do bezpečnosti na webu
Úvod do bezpečnosti na webuÚvod do bezpečnosti na webu
Úvod do bezpečnosti na webuKeyup
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScriptKeyup
 
Easymock
EasymockEasymock
EasymockKeyup
 
CSS 3
CSS 3CSS 3
CSS 3Keyup
 
Contract in Java
Contract in JavaContract in Java
Contract in JavaKeyup
 
Jenkins
JenkinsJenkins
JenkinsKeyup
 
JLint
JLintJLint
JLintKeyup
 
Angular js vs. Facebook react
Angular js vs. Facebook reactAngular js vs. Facebook react
Angular js vs. Facebook reactKeyup
 

More from Keyup (20)

Unity
UnityUnity
Unity
 
Google AdWords a Google AdSense vs. AdBlock.
Google AdWords a Google AdSense vs. AdBlock.Google AdWords a Google AdSense vs. AdBlock.
Google AdWords a Google AdSense vs. AdBlock.
 
WinJS
WinJSWinJS
WinJS
 
Redux+React
Redux+ReactRedux+React
Redux+React
 
Garbage Collection in Java
Garbage Collection in JavaGarbage Collection in Java
Garbage Collection in Java
 
CSS flexbox
CSS flexboxCSS flexbox
CSS flexbox
 
Magento 2
Magento 2Magento 2
Magento 2
 
Silex
SilexSilex
Silex
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
HHVM & Hack
HHVM & HackHHVM & Hack
HHVM & Hack
 
Icinga2
Icinga2Icinga2
Icinga2
 
O auth2
O auth2O auth2
O auth2
 
Úvod do bezpečnosti na webu
Úvod do bezpečnosti na webuÚvod do bezpečnosti na webu
Úvod do bezpečnosti na webu
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScript
 
Easymock
EasymockEasymock
Easymock
 
CSS 3
CSS 3CSS 3
CSS 3
 
Contract in Java
Contract in JavaContract in Java
Contract in Java
 
Jenkins
JenkinsJenkins
Jenkins
 
JLint
JLintJLint
JLint
 
Angular js vs. Facebook react
Angular js vs. Facebook reactAngular js vs. Facebook react
Angular js vs. Facebook react
 

Keyup presentation about Gulp

  • 1. Gulp Vojta Grec / Keyup
  • 2. O co jde? • Build systém pro web • Automatizace opakujících se tasků • Preprocessing CSS/Coffeescript/… • Minifikace CSS/JS/… ➡ Ulehčení toho, co stejně děláte.
  • 3. Grunt • Vytvořen: 2012 • Poslední commit: měsíc(e) • Konfigurace > kód • Sekvenční provádění • Filesystem based • „Kitchen sink“ • 3600+ pluginů Gulp • Vytvořen: 2013 • Poslední commit: dny • Kód > konfigurace • Paralelní provádění • Stream based • Unix-like • 700+ pluginů • Postaveno nad node.js
  • 4. Grunt Gulp grunt.initConfig({ sass: { dist: { files: [{ cwd: 'app/styles', src: '**/*.scss', dest: '../.tmp/styles', expand: true, ext: '.css' }] } }, autoprefixer: { options: ['last 1 version'], dist: { files: [{ expand: true, cwd: '.tmp/styles', src: '{,*/}*.css', dest: 'dist/styles' }] } }, watch: { styles: { files: ['app/styles/{,*/}*.scss'], tasks: ['sass:dist','autoprefixer:dist'] } } }); grunt.registerTask('default', ['styles','watch']); var sass = require('gulp-sass'); var autoprefixer = require('gulp-autoprefixer'); gulp.task('sass', function () { gulp.src('app/styles/**/*.scss') .pipe(sass()) .pipe(autoprefixer('last 1 version')) .pipe(gulp.dest('dist/styles')); }); gulp.task('default', function() { gulp.run('sass'); gulp.watch('app/styles/**/*.scss', function() { gulp.run('sass'); }); });
  • 6. • Příkazy: • task // Create task gulp.task('name', ['deps'], function(done) { return stream || promise; // ...or call done() });
  • 7. • Příkazy: • task • src // Returns a readable stream gulp.src(['src/**/*.js', '!src/**/*.spec.js'])
  • 8. • Příkazy: • task • src • dest // Writes stream contents // into files gulp.src('src') .pipe(...) .pipe(gulp.dest('dist'));
  • 9. • Příkazy: • task • src • dest • watch // Runs tasks when files change gulp.watch('src/**/*.js', ['compile']);
  • 10. • Příkazy: • task • src • dest • watch • pipe (z node.js streamů)
  • 11. Conclusions • Určitě chceme používat (kde má smysl) • Pro frontendisty dnes součást toolboxu • Gulp má větší budoucnost než Grunt • Pojďme vyzkoušet Gulp • http://gulpfiction.divshot.io pomůže
  • 12. Díky za pozornost :-) (a díky Tomáši Holasovi ze Socialbakers za jeho přednášku na Webexpo (http://goo.gl/ZCnH2y), kterou jsem značně vykradl ;-) )