SlideShare a Scribd company logo
Front-end tools
vs.
Pain
Bower, Grunt, Gulp,Webpack,Yeoman, …
GlebVinnikov
CTO/PM
Full Stack JS Developer
oDesk,YuktiDev, PortaOne
gleb.vinnikov@gmail.com
Duties
—  Ext. lib
—  Include lib to html
—  Versioning
—  Minification
—  Bundle package
—  Sprites
—  Deploy to servers
—  …
https://nodejs.org
—  Chrome'sV8 runtime.
—  Node.js uses an event-driven
—  non-blocking I/O model
https://iojs.org
https://www.npmjs.com/
Bower
A package manager for the web
http://bower.io/
Bower
A package manager for the web
http://bower.io/
—  18K Packages
Bower
A package manager for the web
http://bower.io/
—  18K Packages
—  Search/Install/Update/Delete
Bower
A package manager for the web
http://bower.io/
—  18K Packages
—  Search/Install/Update/Delete
—  bower install git://github.com/package.git
Bower
A package manager for the web
http://bower.io/
—  18K Packages
—  Search/Install/Update/Delete
—  bower install git://github.com/package.git
—  bower install http://example.com/script.js
Grunt
The JavaScript Task Runner
4400+
http://gruntjs.com/
Gulp
http://gulpjs.com/
Automate and enhance your workflow
1400+
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
options: {
banner: '/*! <%= pkg.name %> */n'
},
build: {
src: 'src/<%= pkg.name %>.js',
dest: 'build/<%= pkg.name %>.min.js'
}
}
});
// Load the plugin that provides the "uglify" task.
grunt.loadNpmTasks('grunt-contrib-uglify');
var gulp = require('gulp');
gulp.task('one', function(cb) {
gulp.src('client/**/*.js')
.pipe(minify())
.pipe(gulp.dest('build'));
});
gulp.task('two’, function() {
});
gulp.task('default', ['one', 'two']);
module.exports = function (grunt) {
// Configure grunt
grunt.initConfig({
sprite:{
all: {
src: 'path/to/your/sprites/*.png',
dest: 'destination/of/spritesheet.png',
destCss: 'destination/of/sprites.css'
}
}
});
// Load in `grunt-spritesmith`
grunt.loadNpmTasks('grunt-spritesmith');
};
npm install grunt-spritesmith
watch: {
css: {
files: '**/*.sass',
tasks: ['sass'],
options: {
livereload: true,
}
}
}
npm install grunt-contrib-watch
grunt.initConfig({
uglify: {
options: {
mangle: false
},
my_target: {
files: {
'dest/output.min.js': ['src/input.js']
}
}
}
});
npm install grunt-contrib-uglify
grunt.initConfig({
jshint: {
all: ['Gruntfile.js', 'lib/**/*.js', 'test/**/*.js']
}
});
npm install grunt-contrib-jshint
inject: {
single: {
scriptSrc: 'build/devscript.js',
files: {
'dist/index.html': 'src/index.html'
}
}
}
npm install grunt-inject
'sftp-deploy': {
build: {
auth: {
host: 'server.com',
port: 22,
authKey: 'key1'
},
cache: 'sftpCache.json',
src: '/path/to/source/folder',
dest: '/path/to/destination/folder',
exclusions: ['/path/to/source/folder/**/.DS_Store', 'dist/tmp'],
concurrency: 4,
progress: true
}
}
npm install grunt-sftp-deploy
imagemin: { // Task
static: { // Target
options: { // Target options
optimizationLevel: 3,
},
files: { // Dictionary of files
'dist/img.png': 'src/img.png', // 'destination': 'source'
'dist/img.jpg': 'src/img.jpg',
'dist/img.gif': 'src/img.gif'
}
},
}
}
npm install grunt-contrib-imagemin
Webpack
http://webpack.github.io/
—  Plugins
Webpack
http://webpack.github.io/
—  Plugins
—  Loaders
Webpack
http://webpack.github.io/
—  Plugins
—  Loaders
—  Code Splitting into chunks
Webpack
http://webpack.github.io/
—  Plugins
—  Loaders
—  Code Splitting into chunks
—  Optimization
Webpack
http://webpack.github.io/
—  Plugins
—  Loaders
—  Code Splitting into chunks
—  Optimization
—  Hot Module Replacement
Yeoman
The Web's scaffolding tool for modern webapps
http://yeoman.io/
—  1100+ generators
Yeoman
The Web's scaffolding tool for modern webapps
http://yeoman.io/
—  1100+ generators
—  Sub-generators
Yeoman
The Web's scaffolding tool for modern webapps
http://yeoman.io/
—  1100+ generators
—  Sub-generators
—  Creating a generator
PhantomJS
PhantomJS is a headless browser
http://phantomjs.org/
—  JavaScriptCore with JIT compiler
PhantomJS
PhantomJS is a headless browser
http://phantomjs.org/
—  JavaScriptCore with JIT compiler
—  Headless web testing
PhantomJS
PhantomJS is a headless browser
http://phantomjs.org/
—  JavaScriptCore with JIT compiler
—  Headless web testing
—  Page automation
PhantomJS
PhantomJS is a headless browser
http://phantomjs.org/
—  JavaScriptCore with JIT compiler
—  Headless web testing
—  Page automation
—  Network monitoring
Questions ?
Thanks!
GlebVinnikov
gleb.vinnikov@gmail.com

More Related Content

What's hot (20)

PDF
Zero Downtime Deployment with Ansible
Stein Inge Morisbak
 
PDF
TDC2016SP - Esqueça Grunt ou Gulp. Webpack and NPM rule them all!
tdc-globalcode
 
PDF
CI : the first_step: Auto Testing with CircleCI - (MOSG)
Soshi Nemoto
 
PDF
JCConf 2015 workshop 動手玩 Java 專案建置工具
謝 宗穎
 
PPTX
Grunt to automate JS build
Tejaswita Takawale
 
PDF
Multiple django applications on a single server with nginx
roskakori
 
PDF
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Ryan Weaver
 
PDF
Ninja Git: Save Your Master
Nicola Paolucci
 
PDF
Big query - Command line tools and Tips - (MOSG)
Soshi Nemoto
 
PDF
PDXPortland - Dockerize Django
Hannes Hapke
 
PDF
How to integrate front end tool via gruntjs
Bo-Yi Wu
 
PDF
How we maintain 200+ Drupal sites in Georgetown University
Ovadiah Myrgorod
 
PDF
"Wix Serverless from inside", Mykola Borozdin
Fwdays
 
PDF
Pragmatic Monolith-First, easy to decompose, clean architecture
Piotr Pelczar
 
PDF
Grunt & Front-end Workflow
Pagepro
 
PPT
Learn jobDSL for Jenkins
Larry Cai
 
PDF
Docker in practice
Jonathan Giannuzzi
 
PDF
Taming AEM deployments
Jakub Wadolowski
 
PDF
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Ovadiah Myrgorod
 
PDF
Hey webpack
Andrew Makarow
 
Zero Downtime Deployment with Ansible
Stein Inge Morisbak
 
TDC2016SP - Esqueça Grunt ou Gulp. Webpack and NPM rule them all!
tdc-globalcode
 
CI : the first_step: Auto Testing with CircleCI - (MOSG)
Soshi Nemoto
 
JCConf 2015 workshop 動手玩 Java 專案建置工具
謝 宗穎
 
Grunt to automate JS build
Tejaswita Takawale
 
Multiple django applications on a single server with nginx
roskakori
 
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Ryan Weaver
 
Ninja Git: Save Your Master
Nicola Paolucci
 
Big query - Command line tools and Tips - (MOSG)
Soshi Nemoto
 
PDXPortland - Dockerize Django
Hannes Hapke
 
How to integrate front end tool via gruntjs
Bo-Yi Wu
 
How we maintain 200+ Drupal sites in Georgetown University
Ovadiah Myrgorod
 
"Wix Serverless from inside", Mykola Borozdin
Fwdays
 
Pragmatic Monolith-First, easy to decompose, clean architecture
Piotr Pelczar
 
Grunt & Front-end Workflow
Pagepro
 
Learn jobDSL for Jenkins
Larry Cai
 
Docker in practice
Jonathan Giannuzzi
 
Taming AEM deployments
Jakub Wadolowski
 
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Ovadiah Myrgorod
 
Hey webpack
Andrew Makarow
 

Similar to Front-end tools (20)

PDF
Ondřej Procházka - Deployment podle Devel.cz
Develcz
 
PDF
Gdg cloud taipei ddt meetup #53 buildpack
KAI CHU CHUNG
 
PDF
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
Horacio Gonzalez
 
PDF
Deployment Tactics
Ian Barber
 
PDF
Workshop 3: JavaScript build tools
Visual Engineering
 
PDF
Drone CI/CD 自動化測試及部署
Bo-Yi Wu
 
PDF
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Cosimo Streppone
 
PPTX
Improving build solutions dependency management with webpack
NodeXperts
 
PDF
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
Horacio Gonzalez
 
PDF
Web development automatisation for fun and profit (Artem Daniliants)
LumoSpark
 
PDF
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
MarcinStachniuk
 
PDF
Web development - technologies and tools
Yoann Gotthilf
 
PDF
Capistrano deploy Magento project in an efficient way
Sylvain Rayé
 
PDF
Nodejs in Production
William Bruno Moraes
 
KEY
Node.js basics
Ben Lin
 
PDF
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Leo Lorieri
 
PDF
Create your very own Development Environment with Vagrant and Packer
frastel
 
KEY
Composer
Tom Corrigan
 
PDF
Using docker to develop NAS applications
Terry Chen
 
PDF
Instrumentación de entrega continua con Gitlab
Software Guru
 
Ondřej Procházka - Deployment podle Devel.cz
Develcz
 
Gdg cloud taipei ddt meetup #53 buildpack
KAI CHU CHUNG
 
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
Horacio Gonzalez
 
Deployment Tactics
Ian Barber
 
Workshop 3: JavaScript build tools
Visual Engineering
 
Drone CI/CD 自動化測試及部署
Bo-Yi Wu
 
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Cosimo Streppone
 
Improving build solutions dependency management with webpack
NodeXperts
 
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
Horacio Gonzalez
 
Web development automatisation for fun and profit (Artem Daniliants)
LumoSpark
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
MarcinStachniuk
 
Web development - technologies and tools
Yoann Gotthilf
 
Capistrano deploy Magento project in an efficient way
Sylvain Rayé
 
Nodejs in Production
William Bruno Moraes
 
Node.js basics
Ben Lin
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Leo Lorieri
 
Create your very own Development Environment with Vagrant and Packer
frastel
 
Composer
Tom Corrigan
 
Using docker to develop NAS applications
Terry Chen
 
Instrumentación de entrega continua con Gitlab
Software Guru
 
Ad

Recently uploaded (20)

PPTX
BB FlashBack Pro 5.61.0.4843 With Crack Free Download
cracked shares
 
PDF
Instantiations Company Update (ESUG 2025)
ESUG
 
PPTX
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
PDF
How to get the licensing right for Microsoft Core Infrastructure Server Suite...
Q-Advise
 
PPTX
How Can Reporting Tools Improve Marketing Performance.pptx
Varsha Nayak
 
PPTX
prodad heroglyph crack 2.0.214.2 Full Free Download
cracked shares
 
PDF
How Attendance Management Software is Revolutionizing Education.pdf
Pikmykid
 
PPTX
Lec 2 Compiler, Interpreter, linker, loader.pptx
javidmiakhil63
 
PDF
Code and No-Code Journeys: The Maintenance Shortcut
Applitools
 
PDF
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
PDF
ERP Consulting Services and Solutions by Contetra Pvt Ltd
jayjani123
 
PPTX
Operations Profile SPDX_Update_20250711_Example_05_03.pptx
Shane Coughlan
 
PDF
Optimizing Tiered Storage for Low-Latency Real-Time Analytics at AI Scale
Alluxio, Inc.
 
PDF
intro_to_cpp_namespace_robotics_corner.pdf
MohamedSaied877003
 
PPTX
MiniTool Partition Wizard Crack 12.8 + Serial Key Download Latest [2025]
filmoracrack9001
 
PDF
Understanding the EU Cyber Resilience Act
ICS
 
PDF
Message Level Status (MLS): The Instant Feedback Mechanism for UAE e-Invoicin...
Prachi Desai
 
PDF
Introduction to Apache Iceberg™ & Tableflow
Alluxio, Inc.
 
PPTX
Build a Custom Agent for Agentic Testing.pptx
klpathrudu
 
PDF
10 Salesforce Consulting Companies in Sydney.pdf
DianApps Technologies
 
BB FlashBack Pro 5.61.0.4843 With Crack Free Download
cracked shares
 
Instantiations Company Update (ESUG 2025)
ESUG
 
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
How to get the licensing right for Microsoft Core Infrastructure Server Suite...
Q-Advise
 
How Can Reporting Tools Improve Marketing Performance.pptx
Varsha Nayak
 
prodad heroglyph crack 2.0.214.2 Full Free Download
cracked shares
 
How Attendance Management Software is Revolutionizing Education.pdf
Pikmykid
 
Lec 2 Compiler, Interpreter, linker, loader.pptx
javidmiakhil63
 
Code and No-Code Journeys: The Maintenance Shortcut
Applitools
 
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
ERP Consulting Services and Solutions by Contetra Pvt Ltd
jayjani123
 
Operations Profile SPDX_Update_20250711_Example_05_03.pptx
Shane Coughlan
 
Optimizing Tiered Storage for Low-Latency Real-Time Analytics at AI Scale
Alluxio, Inc.
 
intro_to_cpp_namespace_robotics_corner.pdf
MohamedSaied877003
 
MiniTool Partition Wizard Crack 12.8 + Serial Key Download Latest [2025]
filmoracrack9001
 
Understanding the EU Cyber Resilience Act
ICS
 
Message Level Status (MLS): The Instant Feedback Mechanism for UAE e-Invoicin...
Prachi Desai
 
Introduction to Apache Iceberg™ & Tableflow
Alluxio, Inc.
 
Build a Custom Agent for Agentic Testing.pptx
klpathrudu
 
10 Salesforce Consulting Companies in Sydney.pdf
DianApps Technologies
 
Ad

Front-end tools