SlideShare a Scribd company logo
1 of 16
Download to read offline
AUTOMATIZANDO
TAREFAS DE FRONT-END
COM GRUNTJS
Rafael Lyra
O QUE É O GRUNTJS?

O GRUNTJS É UM GERENCIADOR DE TAREFAS FRONT-END
ESCRITO EM JAVASCRIPT (NODEJS).
O Grunt pode rodar apenas uma tarefa de cada vez, ou várias
tarefas juntas.
COMO FUNCIONA O GRUNTJS?

O FUNCIONAMENTO DO GRUNT DEPENDE DE 3 COISAS:
O Grunt CLI (global)
O Grunt (local)
Os plugins do Grunt
COMO O GRUNT CLI FUNCIONA

O GRUNT CLI É INSTALADO NO SEU COMPUTADOR DE FORMA
GLOBAL VIA NPM, E VOCÊ USA ELE PARA RODAR DIFERENTES
VERSÕES DO GRUNT
Cada vez que você roda o Grunt CLI ele procura por uma versão
do Grunt instalada e quando ele encontra ele carrega a Biblioteca
do Grunt local, aplica as configurações, e executa as tarefas que
você pediu.
COMO O GRUNT FUNCIONA
O GRUNT PODE SER INSTALADO EM QUALQUER
PASTA DO SEU COMPUTADOR VIA NPM, O QUE
PERMITE QUE VOCÊ TENHA VÁRIAS VERSÕES
DO GRUNT INSTALADAS SIMULTÂNEAMENTE.
O funcionamento do Grunt depende de 2 arquivos, o
package.json, e o Gruntfile.js (ou .coffee)
OS PLUGINS DO GRUNT

OS PLUGINS TAMBÉM SÃO INSTALADOS LOCALMENTE VIA
NPM E SÃO CARREGADOS NO SEU GRUNTFILE
grunt-contrib-clean
utilizado para excluir arquivos e pastas.

grunt-contrib-compass
compila sass para css utilizando o compass

grunt-contrib-connect
cria um web server

grunt-contrib-uglify / grunt-contrib-mincss
minificam js/css

grunt-contrib-watch
roda tasks quando um arquivo é adicionado/alterado/excluído

grunt-shell
para rodar comandos no shell

grunt-plato
gerar relatórios de códigos
handlebars - mustache - batman - haml - hoganjs - twig...
jade
jasmine - nodeunit - qunit - mocha - behat ...
selenium - phantonjs / casperjs
jshint - jslint
requirejs - browserify
rework - sass - less - stylus - absurdjs
emberjs - backbone - canjs - angularjs
heroku - akamai - aws - jenkins - nginx
bower
browserstack
coffescript - dart
ssh - ftp - rsync
wordpress - jekyll
Concatenar arquivos
Copiar arquivos
Criação de links simbólicos
Checar dependencias quebradas em AMD
Criar arquivo manifesto para appcache com HTML5
Fazer beautify de arquivos javascript e css
Crontrole de cache com timestamp/hash
Renomear arquivos usando regex (?)
Compilar markdown para html
Criar sprites (sem o compass)
Criar site maps
grunt-run-grunt
Grunt task to run Gruntfiles in a child process. Gruntception!
VOCÊ ENCONTRA A MAIORIA DOS PLUGINS EM:
HTTP://GRUNTJS.COM/PLUGINS
QUEM USA O GRUNT?
A Adobe usa o grunt no brackets.
O jQuery usa o grunt no jQuery no jQuery UI e no QUnit
O twitter usa o Grunt no TweetDeck e no Typeahead
O Apontador.com usa o grunt nos seus projetos.
... E BUSCANDO O TERMO GRUNTJS NO GITHUB EU ENCONTREI:
684 repositorios públicos
5.238 issues (a maioria pedindo para instalar o gruntjs nos
projetos)
THANKS!

RAFAEL LYRA

front end developer at apontador.com

blog: rafaellyra.com
github: rafaellyra
twitter: @rafaellyra
linkedin: br.linkedin.com/in/rafaellyra/

More Related Content

What's hot

Iniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e BowerIniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e BowerMateus Padua
 
Como migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para LinuxComo migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para LinuxMarcelo Sabadini
 
Apresentação OpenSUSE 11.3 para Desenvolvedores - Portuguese
Apresentação OpenSUSE 11.3 para Desenvolvedores - PortugueseApresentação OpenSUSE 11.3 para Desenvolvedores - Portuguese
Apresentação OpenSUSE 11.3 para Desenvolvedores - PortugueseKomputer
 
GULP - Automatizador de tarefas
GULP - Automatizador de tarefasGULP - Automatizador de tarefas
GULP - Automatizador de tarefasJackson Veroneze
 
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-endMario Mendonça
 
Instalando nx server no ubuntu 9_10
Instalando nx server no ubuntu 9_10Instalando nx server no ubuntu 9_10
Instalando nx server no ubuntu 9_10limafricke
 
Containers PostgreSQL com a Crunchy Container Suite
Containers PostgreSQL com a Crunchy Container SuiteContainers PostgreSQL com a Crunchy Container Suite
Containers PostgreSQL com a Crunchy Container SuiteRoberto Mello
 
Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...
Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...
Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...Alessandro Binhara
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)Wellington Silva
 
Git commits - como, quando e por quê?
Git commits - como, quando e por quê?Git commits - como, quando e por quê?
Git commits - como, quando e por quê?viniciusban
 
Fich cristian n3
Fich cristian n3Fich cristian n3
Fich cristian n3sharik27
 

What's hot (20)

Iniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e BowerIniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e Bower
 
Gulp
GulpGulp
Gulp
 
Como migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para LinuxComo migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para Linux
 
Apresentação OpenSUSE 11.3 para Desenvolvedores - Portuguese
Apresentação OpenSUSE 11.3 para Desenvolvedores - PortugueseApresentação OpenSUSE 11.3 para Desenvolvedores - Portuguese
Apresentação OpenSUSE 11.3 para Desenvolvedores - Portuguese
 
Apt_vagrant_chef_olavo_queiroz
Apt_vagrant_chef_olavo_queirozApt_vagrant_chef_olavo_queiroz
Apt_vagrant_chef_olavo_queiroz
 
Utilizando Docker para escalonar aplicações Node.Js
Utilizando Docker para escalonar aplicações Node.JsUtilizando Docker para escalonar aplicações Node.Js
Utilizando Docker para escalonar aplicações Node.Js
 
Git + git hub
Git + git hubGit + git hub
Git + git hub
 
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
 
Instalando nx server no ubuntu 9_10
Instalando nx server no ubuntu 9_10Instalando nx server no ubuntu 9_10
Instalando nx server no ubuntu 9_10
 
Containers PostgreSQL com a Crunchy Container Suite
Containers PostgreSQL com a Crunchy Container SuiteContainers PostgreSQL com a Crunchy Container Suite
Containers PostgreSQL com a Crunchy Container Suite
 
Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...
Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...
Agile tour2013: Ferramentas .NET para suporte as práticas ágeis em ambiente M...
 
Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
Aplicação Distribuída com Docker Swarm (Meetup GruPy-SP)
 
Git commits - como, quando e por quê?
Git commits - como, quando e por quê?Git commits - como, quando e por quê?
Git commits - como, quando e por quê?
 
Replicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManagerReplicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManager
 
Fich cristian n3
Fich cristian n3Fich cristian n3
Fich cristian n3
 
Debug de cabo a rabo
Debug de cabo a raboDebug de cabo a rabo
Debug de cabo a rabo
 
Do gameboy a zend vm e avante
Do gameboy a zend vm e avanteDo gameboy a zend vm e avante
Do gameboy a zend vm e avante
 

Similar to Automatizando tarefas front-end com GruntJS

Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizadosThiago Rodrigues
 
Mini-curso de linux básico
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básicoAdriano Melo
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao TerraformLeandro Silva
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open SourceEdgar Silva
 
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...tdc-globalcode
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell ScriptReinaldo Lima
 
Programação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebProgramação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebIsrael Messias
 
Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias WebRildo Pragana
 
O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiFrancisco Gonçalves
 
MÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUD
MÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUDMÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUD
MÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUDOrlindo Saraiva
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosCharles Fortes
 
Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Wallison Marra
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoCezinha Anjos
 
SASS e Compass, O CSS Ninja Workflow
SASS e Compass, O CSS Ninja WorkflowSASS e Compass, O CSS Ninja Workflow
SASS e Compass, O CSS Ninja WorkflowBeto Muniz
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsVinicius Reis
 
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )João Moura
 

Similar to Automatizando tarefas front-end com GruntJS (20)

Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizados
 
Mini-curso de linux básico
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básico
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao Terraform
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
 
Deploy Rails
Deploy RailsDeploy Rails
Deploy Rails
 
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...
TDC2017 | São Paulo - Trilha Programação Funcional How we figured out we had ...
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell Script
 
Vagrant + Puppet
Vagrant + PuppetVagrant + Puppet
Vagrant + Puppet
 
Programação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebProgramação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente Web
 
Aplicações com Tecnologias Web
Aplicações com Tecnologias WebAplicações com Tecnologias Web
Aplicações com Tecnologias Web
 
O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-ti
 
MÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUD
MÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUDMÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUD
MÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUD
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
 
Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direito
 
Python CGI
Python CGIPython CGI
Python CGI
 
SASS e Compass, O CSS Ninja Workflow
SASS e Compass, O CSS Ninja WorkflowSASS e Compass, O CSS Ninja Workflow
SASS e Compass, O CSS Ninja Workflow
 
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.jsJava script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
Java script em 2016 - Como sobreviver a essa sopa de letrinhas com vue.js
 
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
 
Trab linux+sarg
Trab linux+sargTrab linux+sarg
Trab linux+sarg
 

Automatizando tarefas front-end com GruntJS

  • 2. O QUE É O GRUNTJS? O GRUNTJS É UM GERENCIADOR DE TAREFAS FRONT-END ESCRITO EM JAVASCRIPT (NODEJS). O Grunt pode rodar apenas uma tarefa de cada vez, ou várias tarefas juntas.
  • 3. COMO FUNCIONA O GRUNTJS? O FUNCIONAMENTO DO GRUNT DEPENDE DE 3 COISAS: O Grunt CLI (global) O Grunt (local) Os plugins do Grunt
  • 4. COMO O GRUNT CLI FUNCIONA O GRUNT CLI É INSTALADO NO SEU COMPUTADOR DE FORMA GLOBAL VIA NPM, E VOCÊ USA ELE PARA RODAR DIFERENTES VERSÕES DO GRUNT
  • 5. Cada vez que você roda o Grunt CLI ele procura por uma versão do Grunt instalada e quando ele encontra ele carrega a Biblioteca do Grunt local, aplica as configurações, e executa as tarefas que você pediu.
  • 6. COMO O GRUNT FUNCIONA
  • 7. O GRUNT PODE SER INSTALADO EM QUALQUER PASTA DO SEU COMPUTADOR VIA NPM, O QUE PERMITE QUE VOCÊ TENHA VÁRIAS VERSÕES DO GRUNT INSTALADAS SIMULTÂNEAMENTE.
  • 8. O funcionamento do Grunt depende de 2 arquivos, o package.json, e o Gruntfile.js (ou .coffee)
  • 9. OS PLUGINS DO GRUNT OS PLUGINS TAMBÉM SÃO INSTALADOS LOCALMENTE VIA NPM E SÃO CARREGADOS NO SEU GRUNTFILE
  • 10. grunt-contrib-clean utilizado para excluir arquivos e pastas. grunt-contrib-compass compila sass para css utilizando o compass grunt-contrib-connect cria um web server grunt-contrib-uglify / grunt-contrib-mincss minificam js/css grunt-contrib-watch roda tasks quando um arquivo é adicionado/alterado/excluído grunt-shell para rodar comandos no shell grunt-plato gerar relatórios de códigos
  • 11. handlebars - mustache - batman - haml - hoganjs - twig... jade jasmine - nodeunit - qunit - mocha - behat ... selenium - phantonjs / casperjs jshint - jslint requirejs - browserify rework - sass - less - stylus - absurdjs emberjs - backbone - canjs - angularjs heroku - akamai - aws - jenkins - nginx bower browserstack coffescript - dart ssh - ftp - rsync wordpress - jekyll
  • 12. Concatenar arquivos Copiar arquivos Criação de links simbólicos Checar dependencias quebradas em AMD Criar arquivo manifesto para appcache com HTML5 Fazer beautify de arquivos javascript e css Crontrole de cache com timestamp/hash Renomear arquivos usando regex (?) Compilar markdown para html Criar sprites (sem o compass) Criar site maps
  • 13. grunt-run-grunt Grunt task to run Gruntfiles in a child process. Gruntception!
  • 14. VOCÊ ENCONTRA A MAIORIA DOS PLUGINS EM: HTTP://GRUNTJS.COM/PLUGINS
  • 15. QUEM USA O GRUNT? A Adobe usa o grunt no brackets. O jQuery usa o grunt no jQuery no jQuery UI e no QUnit O twitter usa o Grunt no TweetDeck e no Typeahead O Apontador.com usa o grunt nos seus projetos. ... E BUSCANDO O TERMO GRUNTJS NO GITHUB EU ENCONTREI: 684 repositorios públicos 5.238 issues (a maioria pedindo para instalar o gruntjs nos projetos)
  • 16. THANKS! RAFAEL LYRA front end developer at apontador.com blog: rafaellyra.com github: rafaellyra twitter: @rafaellyra linkedin: br.linkedin.com/in/rafaellyra/