SlideShare una empresa de Scribd logo
1 de 33
Automatizando tarefas com Gulp.js
João Gabriel Lima
@jgabriel_lima
linkedin.com/in/joaogabriellima
linkedin.com/in/joaogabriellima
IT Hacker, Docente, Instrutor em
treinamentos, Co-fundador da Huddle3, Senior
AI Engineer na NexusEdge.
Doutorando em Computação Aplicada com
ênfase em Inteligência Artificial, Mineração de
Dados e BigData.
http://gulpjs.com/
Para que serve e por que eu devo utilizar?
Automatizadores de tarefa são ferramentas que ajudam
programadores a realizarem tarefas repetitivas e
essenciais para o desenvolvimento como: concatenação
de arquivos, minificação, testes...
Fácil de usar:
Ao preferir código ao invés de configuração, Gulp mantém simples o que é
simples e faz tarefas complexas mais bem administráveis.
Eficiente:
Gulp usa o poder de streams do Node, o que permite builds muitos mais rápidos e dispensa a necessidade
de gravação de arquivos intermediários em disco.
Alta qualidade:
As diretrizes estritas para plugins do Gulp garantem que seus plugins permaneçam simples e trabalhem
da maneira que se espera.
Fácil de aprender:
Com uma API mínima, aprende-se a trabalhar com o Gulp quase que na hora!
Vamos falar de pré-processadores
Alguns exemplos de pré-processadores
Markdown
HAML
Slim
Jade
CoffeeKup
Sass
Less
Stylus
Compass
CoffeeScript
LiveScript
TypeScript
Babel
Processing.js
Alguns exemplos
http://dillinger.io/
Iniciando os trabalhos
Pré-requisitos
nodejs.org
npm install -g gulp
gulp -v
LET’S CODE
Exemplo 1:
Realizando testes no javascript
/exemplo1
- index.html
- script.js
- style.css
npm init
npm install gulp --save-dev
npm install gulp-jshint --save-dev
Exemplo 2:
Minificando Html, CSS, JS
var minifyHTML = require('gulp-minify-html');
gulp.task('minify-html', function() {
var opts = {
conditionals: true,
spare:true
};
return gulp.src('./static/html/*.html')
.pipe(minifyHTML(opts))
.pipe(gulp.dest('./dist/'));
});
● empty - remove atributos vazios
● comments - remove comentários
● conditionals - remove comentários condicionais para Internet Explorer
● spare - remove atributos redundantes
● loose - preserva os espaços em branco
Exemplo 3:
Otimizando Imagens
https://www.npmjs.com/package/gulp-imagemin
Exemplo 4:
Browser Sync e Watch Task
https://www.npmjs.com/package/gulp-deploy-ftp
Você não precisa fazer tudo DO ZERO...
https://html5boilerplate.com/
https://github.com/tomaszbujnowicz/html5-boilerplate-gulp-less
Explore mais plugins...
http://gulpjs.com/plugins/
Obrigado!
https://github.com/jgabriellima/aula-gulpjs-iesam
Automatizando tarefas com Gulp.js
João Gabriel Lima
@jgabriel_lima
linkedin.com/in/joaogabriellima

Más contenido relacionado

Destacado

IDS_Rapport plug-in for Salesforce_success story
IDS_Rapport plug-in for Salesforce_success storyIDS_Rapport plug-in for Salesforce_success story
IDS_Rapport plug-in for Salesforce_success story
Mansa Systems
 

Destacado (15)

SQLSat 253 - Por Onde Começar no BigData
SQLSat 253 - Por Onde Começar no BigDataSQLSat 253 - Por Onde Começar no BigData
SQLSat 253 - Por Onde Começar no BigData
 
Organització política espanyola
Organització política espanyolaOrganització política espanyola
Organització política espanyola
 
Segurança na Internet - Conceitos fundamentais
Segurança na Internet - Conceitos fundamentaisSegurança na Internet - Conceitos fundamentais
Segurança na Internet - Conceitos fundamentais
 
REST x SOAP : Qual abordagem escolher?
REST x SOAP : Qual abordagem escolher?REST x SOAP : Qual abordagem escolher?
REST x SOAP : Qual abordagem escolher?
 
Disrupting Conventional Therapies with Digital Therapies
Disrupting Conventional Therapies with Digital TherapiesDisrupting Conventional Therapies with Digital Therapies
Disrupting Conventional Therapies with Digital Therapies
 
Segurança na Internet - Estudos de caso
Segurança na Internet - Estudos de casoSegurança na Internet - Estudos de caso
Segurança na Internet - Estudos de caso
 
Web Machine Learning
Web Machine LearningWeb Machine Learning
Web Machine Learning
 
Apache Spark and MongoDB - Turning Analytics into Real-Time Action
Apache Spark and MongoDB - Turning Analytics into Real-Time ActionApache Spark and MongoDB - Turning Analytics into Real-Time Action
Apache Spark and MongoDB - Turning Analytics into Real-Time Action
 
IDS_Rapport plug-in for Salesforce_success story
IDS_Rapport plug-in for Salesforce_success storyIDS_Rapport plug-in for Salesforce_success story
IDS_Rapport plug-in for Salesforce_success story
 
Segurança na Internet - Google Hacking
Segurança na Internet - Google  HackingSegurança na Internet - Google  Hacking
Segurança na Internet - Google Hacking
 
Mineração de Dados com RapidMiner - Um Estudo de caso sobre o Churn Rate em...
Mineração de Dados com RapidMiner - Um Estudo de caso sobre o Churn Rate em...Mineração de Dados com RapidMiner - Um Estudo de caso sobre o Churn Rate em...
Mineração de Dados com RapidMiner - Um Estudo de caso sobre o Churn Rate em...
 
Lowering students' anxiety during information skills training with active lea...
Lowering students' anxiety during information skills training with active lea...Lowering students' anxiety during information skills training with active lea...
Lowering students' anxiety during information skills training with active lea...
 
Mineração de Dados no Weka - Regressão Linear
Mineração de Dados no Weka -  Regressão LinearMineração de Dados no Weka -  Regressão Linear
Mineração de Dados no Weka - Regressão Linear
 
Fitxa islam2016
Fitxa islam2016Fitxa islam2016
Fitxa islam2016
 
L' islam
L' islamL' islam
L' islam
 

Similar a [Estácio - IESAM] Automatizando Tarefas com Gulp.js

Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Adriano Teixeira de Souza
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
Carlos Gonzaga
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral Detalhado
Regis Magalhães
 

Similar a [Estácio - IESAM] Automatizando Tarefas com Gulp.js (20)

GULP - Automatizador de tarefas
GULP - Automatizador de tarefasGULP - Automatizador de tarefas
GULP - Automatizador de tarefas
 
Gulp - Automatizador de tarefas de front-end
Gulp - Automatizador de tarefas de front-endGulp - Automatizador de tarefas de front-end
Gulp - Automatizador de tarefas de front-end
 
Vamos automatizar! Conheça o Gulp Js
Vamos automatizar! Conheça o Gulp JsVamos automatizar! Conheça o Gulp Js
Vamos automatizar! Conheça o Gulp Js
 
Developer Experience no Nubank
Developer Experience no NubankDeveloper Experience no Nubank
Developer Experience no Nubank
 
Desenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full JavascriptDesenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full Javascript
 
Docker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaDocker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entrega
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Java 01 Java Visao Geral
Java 01 Java Visao GeralJava 01 Java Visao Geral
Java 01 Java Visao Geral
 
Java 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral DetalhadoJava 01 Java Visao Geral Detalhado
Java 01 Java Visao Geral Detalhado
 
Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
 
648021762-Aula-de-Informatica-Slides.pptx
648021762-Aula-de-Informatica-Slides.pptx648021762-Aula-de-Informatica-Slides.pptx
648021762-Aula-de-Informatica-Slides.pptx
 
02 04 2012__15_10_03resp_exercicios_sistema_operacional
02 04 2012__15_10_03resp_exercicios_sistema_operacional02 04 2012__15_10_03resp_exercicios_sistema_operacional
02 04 2012__15_10_03resp_exercicios_sistema_operacional
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Coding Dojo - Unreal Engine
Coding Dojo - Unreal EngineCoding Dojo - Unreal Engine
Coding Dojo - Unreal Engine
 
Metodologias Ágeis
Metodologias ÁgeisMetodologias Ágeis
Metodologias Ágeis
 
FDD
FDDFDD
FDD
 
Zend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoZend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutenção
 
Front-end Tooling - Dicas de ferramentas para melhorar a produtividade
Front-end Tooling - Dicas de ferramentas para melhorar a produtividadeFront-end Tooling - Dicas de ferramentas para melhorar a produtividade
Front-end Tooling - Dicas de ferramentas para melhorar a produtividade
 
SACEE 2015 - Ferramentas úteis para projetos de software
SACEE 2015 - Ferramentas úteis para projetos de softwareSACEE 2015 - Ferramentas úteis para projetos de software
SACEE 2015 - Ferramentas úteis para projetos de software
 

Más de João Gabriel Lima

Más de João Gabriel Lima (20)

Cooking with data
Cooking with dataCooking with data
Cooking with data
 
Deep marketing - Indoor Customer Segmentation
Deep marketing - Indoor Customer SegmentationDeep marketing - Indoor Customer Segmentation
Deep marketing - Indoor Customer Segmentation
 
Aplicações de Alto Desempenho com JHipster Full Stack
Aplicações de Alto Desempenho com JHipster Full StackAplicações de Alto Desempenho com JHipster Full Stack
Aplicações de Alto Desempenho com JHipster Full Stack
 
Realidade aumentada com react native e ARKit
Realidade aumentada com react native e ARKitRealidade aumentada com react native e ARKit
Realidade aumentada com react native e ARKit
 
JS - IA
JS - IAJS - IA
JS - IA
 
Big data e Inteligência Artificial
Big data e Inteligência ArtificialBig data e Inteligência Artificial
Big data e Inteligência Artificial
 
Mineração de dados com RapidMiner + WEKA - Clusterização
Mineração de dados com RapidMiner + WEKA - ClusterizaçãoMineração de dados com RapidMiner + WEKA - Clusterização
Mineração de dados com RapidMiner + WEKA - Clusterização
 
Mineração de dados na prática com RapidMiner e Weka
Mineração de dados na prática com RapidMiner e WekaMineração de dados na prática com RapidMiner e Weka
Mineração de dados na prática com RapidMiner e Weka
 
Visualizacao de dados - Come to the dark side
Visualizacao de dados - Come to the dark sideVisualizacao de dados - Come to the dark side
Visualizacao de dados - Come to the dark side
 
Game of data - Predição e Análise da série Game Of Thrones a partir do uso de...
Game of data - Predição e Análise da série Game Of Thrones a partir do uso de...Game of data - Predição e Análise da série Game Of Thrones a partir do uso de...
Game of data - Predição e Análise da série Game Of Thrones a partir do uso de...
 
E-trânsito cidadão - IPVA em suas mãos
E-trânsito cidadão - IPVA em suas mãosE-trânsito cidadão - IPVA em suas mãos
E-trânsito cidadão - IPVA em suas mãos
 
Hackeando a Internet das Coisas com Javascript
Hackeando a Internet das Coisas com JavascriptHackeando a Internet das Coisas com Javascript
Hackeando a Internet das Coisas com Javascript
 
Mercado de Trabalho em Computação - Perfil Analista de Sistemas e Programador
Mercado de Trabalho em Computação - Perfil Analista de Sistemas e ProgramadorMercado de Trabalho em Computação - Perfil Analista de Sistemas e Programador
Mercado de Trabalho em Computação - Perfil Analista de Sistemas e Programador
 
[Fapan] criando aplicações mobile híbridas com ionic framework
[Fapan] criando aplicações mobile híbridas com ionic framework[Fapan] criando aplicações mobile híbridas com ionic framework
[Fapan] criando aplicações mobile híbridas com ionic framework
 
Criando Aplicações Mobile Híbridas com Ionic Framework
Criando Aplicações Mobile Híbridas com Ionic FrameworkCriando Aplicações Mobile Híbridas com Ionic Framework
Criando Aplicações Mobile Híbridas com Ionic Framework
 
Codifique uma vez, distribua em Android, iOS e Windows Phone
Codifique uma vez, distribua em Android, iOS e Windows PhoneCodifique uma vez, distribua em Android, iOS e Windows Phone
Codifique uma vez, distribua em Android, iOS e Windows Phone
 
Desbravando o mundo dos webcrawlers
Desbravando o mundo dos webcrawlersDesbravando o mundo dos webcrawlers
Desbravando o mundo dos webcrawlers
 
Método criado por paraense pode servir de base tecnológica para criar soluçõe...
Método criado por paraense pode servir de base tecnológica para criar soluçõe...Método criado por paraense pode servir de base tecnológica para criar soluçõe...
Método criado por paraense pode servir de base tecnológica para criar soluçõe...
 
Beyond Frontal Faces: Improving Person Recognition Using Multiple Cues
Beyond Frontal Faces: Improving Person Recognition Using Multiple CuesBeyond Frontal Faces: Improving Person Recognition Using Multiple Cues
Beyond Frontal Faces: Improving Person Recognition Using Multiple Cues
 
DeepFace: Closing the Gap to Human-Level Performance in Face Verification
DeepFace: Closing the Gap to Human-Level Performance in Face VerificationDeepFace: Closing the Gap to Human-Level Performance in Face Verification
DeepFace: Closing the Gap to Human-Level Performance in Face Verification
 

[Estácio - IESAM] Automatizando Tarefas com Gulp.js