SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Automação de build para
frontend
vanessa me tonini
eu sou...
● Desenvolvedora Web desde 2007
● Tecnóloga em sistemas para Internet pela UNIVALI
● Especialista em desenvolvimento Web pela UTFPR
● Hoje trabalho em projetos de fomento a
acessibilidade Web e Open Web no W3C Brasil
automação
Automação é a aplicação de técnicas
computadorizadas ou mecânicas para diminuir
o uso de mão-de-obra em qualquer processo,
especialmente o uso de robôs nas linhas de
produção. Lacombe (2004)
automação
para o desenvolvimento de softwares
É o processo de escrita de um programa
de computador para executar uma série
de tarefas automaticamente.
Estas tarefas servem desde para garantia
do funcionamento como para
perfomance de um software.
performance para frontend
Desde o surgimento do HTML5, construir
aplicações Web ficou mais complexo.
A complexidade não está só nas linguagens,
que evoluiram muito nos últimos anos.
Mas também na diversidade de dispositivos
para acessar a Internet, que aumentaram
rapidamente.
build de frontend
O build é a versão final compilada de um
software.
No caso do frontend é o pacote de código
fonte já testado e otimizado.
Tasks para construção do build
● Testes de JS (unit & e2e)
● CSS pré processado
● Gerenciamento de Sprites (imagens do CSS)
● Concatenação e minização dos arquivos JS e
CSS
Tasks para construção do build
● Output de template engines
● Minimização de imagens
● Minimização de html
● Validação de código (w3c, lint …)
entre outras...
Ferramentas
task runner tools
GRUNT JS
npm + Node.js
GRUNT JS: instalação
sudo npm install -g grunt-cli
GRUNT JS: preparando seu projeto
package.json
Gruntfile.js
GRUNT JS: package.json
{
"name": "my-project-name",
"version": "0.1.0",
"devDependencies": {
"grunt": "~0.4.2",
"grunt-contrib-jshint": "~0.6.3",
"grunt-contrib-nodeunit": "~0.2.0",
"grunt-contrib-uglify": "~0.2.2"
}
}
GRUNT JS: Gruntfile.js
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */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');
// Default task(s).
grunt.registerTask('default', ['uglify']);
};
exemplos
referências
● http://www.targettrust.com.br/blog/o-que-e-automacao-de-teste-de-
software/
● http://pt.wikipedia.org/wiki/Automa%C3%A7%C3%A3o
● http://pt.wikipedia.org/wiki/Build
● http://www.infoq.com/br/presentationt-end-ops
● http://www.voltsdigital.com.br/labs/gruntjs-por-onde-comecar/
● http://www.nomensa.com/blog/2014/an-introduction-to-automating-
front-end-build-processes-using-grunt/
● http://gruntjs.com/
@vanessametonini
obrigada!

Contenu connexe

Tendances

Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoGuilherme Heynemann Bruzzi
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometemFernando Henriques
 
Como criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressComo criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressWalmyr Lima e Silva Filho
 
Aulas 6: usando o Jest para fazer mocks to Mongoose, testando a função save
Aulas 6: usando o Jest para fazer mocks to Mongoose, testando a função saveAulas 6: usando o Jest para fazer mocks to Mongoose, testando a função save
Aulas 6: usando o Jest para fazer mocks to Mongoose, testando a função saveJorge Pires
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Daniel Makiyama
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?akamud
 
Unit Test JavaScript
Unit Test JavaScriptUnit Test JavaScript
Unit Test JavaScriptDan Vitoriano
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Erik Cruz
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Criciúma Dev
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp netAnderson Wernek
 
Android Studio: Primeiros Passos
Android Studio: Primeiros PassosAndroid Studio: Primeiros Passos
Android Studio: Primeiros PassosRomualdo Andre
 
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...MVP ShowCast
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigitalJust Digital
 

Tendances (20)

Desenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do códigoDesenvolvendo uma App multiplataforma compartilhando 90% do código
Desenvolvendo uma App multiplataforma compartilhando 90% do código
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
 
Blazor #SnetTalks3
Blazor  #SnetTalks3Blazor  #SnetTalks3
Blazor #SnetTalks3
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem
 
Como criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com CypressComo criar testes rápidos e robustos com Cypress
Como criar testes rápidos e robustos com Cypress
 
Aulas 6: usando o Jest para fazer mocks to Mongoose, testando a função save
Aulas 6: usando o Jest para fazer mocks to Mongoose, testando a função saveAulas 6: usando o Jest para fazer mocks to Mongoose, testando a função save
Aulas 6: usando o Jest para fazer mocks to Mongoose, testando a função save
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
Unit Test JavaScript
Unit Test JavaScriptUnit Test JavaScript
Unit Test JavaScript
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
 
Esse cara é o grunt
Esse cara é o gruntEsse cara é o grunt
Esse cara é o grunt
 
Jugvale
JugvaleJugvale
Jugvale
 
JEE nas nuvens: uma introdução ao openshift
JEE nas nuvens:  uma introdução ao openshiftJEE nas nuvens:  uma introdução ao openshift
JEE nas nuvens: uma introdução ao openshift
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp net
 
Android Studio: Primeiros Passos
Android Studio: Primeiros PassosAndroid Studio: Primeiros Passos
Android Studio: Primeiros Passos
 
Maven em 10 minutos
Maven em 10 minutosMaven em 10 minutos
Maven em 10 minutos
 
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigital
 

En vedette

Empreendendo com métodos ágeis
Empreendendo com métodos ágeisEmpreendendo com métodos ágeis
Empreendendo com métodos ágeisVanessa Me Tonini
 
Acessibilidade Web: Primeiros passos
Acessibilidade Web: Primeiros passosAcessibilidade Web: Primeiros passos
Acessibilidade Web: Primeiros passosVanessa Me Tonini
 
Porque o scrum não vai resolver todos seus problemas
Porque o scrum não vai resolver todos seus problemasPorque o scrum não vai resolver todos seus problemas
Porque o scrum não vai resolver todos seus problemasVanessa Me Tonini
 
O Scrum não vai resolver todos seus problemas
O Scrum não vai resolver todos seus problemasO Scrum não vai resolver todos seus problemas
O Scrum não vai resolver todos seus problemasVanessa Me Tonini
 
Preciso saber se estou indo bem!
Preciso saber se estou indo bem!Preciso saber se estou indo bem!
Preciso saber se estou indo bem!Vanessa Me Tonini
 
Javascript Continues Integration in Jenkins with AngularJS
Javascript Continues Integration in Jenkins with AngularJSJavascript Continues Integration in Jenkins with AngularJS
Javascript Continues Integration in Jenkins with AngularJSLadislav Prskavec
 
Accessibility lightning talk
Accessibility lightning talkAccessibility lightning talk
Accessibility lightning talkVanessa Me Tonini
 
Temas para Magento - Bargento Rio de Janeiro 2012
Temas para Magento - Bargento Rio de Janeiro 2012Temas para Magento - Bargento Rio de Janeiro 2012
Temas para Magento - Bargento Rio de Janeiro 2012Vanessa Me Tonini
 
Boas práticas para desenvolvimento de temas para Magento. Meet Magento 12 BR.
Boas práticas para desenvolvimento de temas para Magento. Meet Magento 12 BR.Boas práticas para desenvolvimento de temas para Magento. Meet Magento 12 BR.
Boas práticas para desenvolvimento de temas para Magento. Meet Magento 12 BR.Vanessa Me Tonini
 
Magento Gerencimento e Customização de Temas
Magento Gerencimento e Customização de TemasMagento Gerencimento e Customização de Temas
Magento Gerencimento e Customização de TemasVanessa Me Tonini
 
Acessibilidade no Comércio Eletrônico, custo ou benefício?
Acessibilidade no Comércio Eletrônico, custo ou benefício?Acessibilidade no Comércio Eletrônico, custo ou benefício?
Acessibilidade no Comércio Eletrônico, custo ou benefício?Vanessa Me Tonini
 
Minicurso CSS: Definição e aplicação
Minicurso CSS: Definição e aplicaçãoMinicurso CSS: Definição e aplicação
Minicurso CSS: Definição e aplicaçãoVanessa Me Tonini
 
Trello + metodologias ágeis
Trello + metodologias ágeisTrello + metodologias ágeis
Trello + metodologias ágeisVanessa Me Tonini
 

En vedette (16)

Agente de Mudança
Agente de MudançaAgente de Mudança
Agente de Mudança
 
Empreendendo com métodos ágeis
Empreendendo com métodos ágeisEmpreendendo com métodos ágeis
Empreendendo com métodos ágeis
 
Acessibilidade Web: Primeiros passos
Acessibilidade Web: Primeiros passosAcessibilidade Web: Primeiros passos
Acessibilidade Web: Primeiros passos
 
Porque o scrum não vai resolver todos seus problemas
Porque o scrum não vai resolver todos seus problemasPorque o scrum não vai resolver todos seus problemas
Porque o scrum não vai resolver todos seus problemas
 
O Scrum não vai resolver todos seus problemas
O Scrum não vai resolver todos seus problemasO Scrum não vai resolver todos seus problemas
O Scrum não vai resolver todos seus problemas
 
Preciso saber se estou indo bem!
Preciso saber se estou indo bem!Preciso saber se estou indo bem!
Preciso saber se estou indo bem!
 
Javascript Continues Integration in Jenkins with AngularJS
Javascript Continues Integration in Jenkins with AngularJSJavascript Continues Integration in Jenkins with AngularJS
Javascript Continues Integration in Jenkins with AngularJS
 
Accessibility lightning talk
Accessibility lightning talkAccessibility lightning talk
Accessibility lightning talk
 
Temas para Magento - Bargento Rio de Janeiro 2012
Temas para Magento - Bargento Rio de Janeiro 2012Temas para Magento - Bargento Rio de Janeiro 2012
Temas para Magento - Bargento Rio de Janeiro 2012
 
Boas práticas para desenvolvimento de temas para Magento. Meet Magento 12 BR.
Boas práticas para desenvolvimento de temas para Magento. Meet Magento 12 BR.Boas práticas para desenvolvimento de temas para Magento. Meet Magento 12 BR.
Boas práticas para desenvolvimento de temas para Magento. Meet Magento 12 BR.
 
Magento Gerencimento e Customização de Temas
Magento Gerencimento e Customização de TemasMagento Gerencimento e Customização de Temas
Magento Gerencimento e Customização de Temas
 
Acessibilidade no Comércio Eletrônico, custo ou benefício?
Acessibilidade no Comércio Eletrônico, custo ou benefício?Acessibilidade no Comércio Eletrônico, custo ou benefício?
Acessibilidade no Comércio Eletrônico, custo ou benefício?
 
Dojo toolkit
Dojo toolkitDojo toolkit
Dojo toolkit
 
Minicurso CSS: Definição e aplicação
Minicurso CSS: Definição e aplicaçãoMinicurso CSS: Definição e aplicação
Minicurso CSS: Definição e aplicação
 
Trello + metodologias ágeis
Trello + metodologias ágeisTrello + metodologias ágeis
Trello + metodologias ágeis
 
Feedback Canvas
Feedback CanvasFeedback Canvas
Feedback Canvas
 

Similaire à Automação de build para frontend

Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHPFlávio Lisboa
 
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 produtividadeHerson Leite
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software LivreRuan Carvalho
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livreRuan Carvalho
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Ramon Durães
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSAmazon Web Services LATAM
 
Como desenvolver softwares utilizando tecnologias microsoft
Como desenvolver softwares utilizando tecnologias microsoftComo desenvolver softwares utilizando tecnologias microsoft
Como desenvolver softwares utilizando tecnologias microsoftJucinei Pereira Dos Santos
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Rodrigo Kono
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...iMasters
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento WebSérgio Souza Costa
 
Web Development em 2015
Web Development em 2015Web Development em 2015
Web Development em 2015Emanuel Santos
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010Norton Guimarães
 
Ampliando suas fronteiras com Node-Webkit
Ampliando suas fronteiras com Node-WebkitAmpliando suas fronteiras com Node-Webkit
Ampliando suas fronteiras com Node-WebkitBeto Muniz
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o NodejsCaio Cutrim
 
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
 
O papel do desenvolvedor front end
O papel do desenvolvedor front endO papel do desenvolvedor front end
O papel do desenvolvedor front endRomário J. Santos
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)Fabrício Catae
 

Similaire à Automação de build para frontend (20)

Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHP
 
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
 
Desenvolvimento web com Software Livre
Desenvolvimento web com Software LivreDesenvolvimento web com Software Livre
Desenvolvimento web com Software Livre
 
Desenvolvimento web com software livre
Desenvolvimento web com software livreDesenvolvimento web com software livre
Desenvolvimento web com software livre
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWS
 
Grunt
GruntGrunt
Grunt
 
Como desenvolver softwares utilizando tecnologias microsoft
Como desenvolver softwares utilizando tecnologias microsoftComo desenvolver softwares utilizando tecnologias microsoft
Como desenvolver softwares utilizando tecnologias microsoft
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
 
É possível desenvolver com Windows
É possível desenvolver com WindowsÉ possível desenvolver com Windows
É possível desenvolver com Windows
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 
Web Development em 2015
Web Development em 2015Web Development em 2015
Web Development em 2015
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010
 
Ampliando suas fronteiras com Node-Webkit
Ampliando suas fronteiras com Node-WebkitAmpliando suas fronteiras com Node-Webkit
Ampliando suas fronteiras com Node-Webkit
 
Conhecendo o Nodejs
Conhecendo o NodejsConhecendo o Nodejs
Conhecendo o Nodejs
 
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
 
O papel do desenvolvedor front end
O papel do desenvolvedor front endO papel do desenvolvedor front end
O papel do desenvolvedor front end
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)
 

Automação de build para frontend

  • 1. Automação de build para frontend vanessa me tonini
  • 2. eu sou... ● Desenvolvedora Web desde 2007 ● Tecnóloga em sistemas para Internet pela UNIVALI ● Especialista em desenvolvimento Web pela UTFPR ● Hoje trabalho em projetos de fomento a acessibilidade Web e Open Web no W3C Brasil
  • 3. automação Automação é a aplicação de técnicas computadorizadas ou mecânicas para diminuir o uso de mão-de-obra em qualquer processo, especialmente o uso de robôs nas linhas de produção. Lacombe (2004)
  • 4. automação para o desenvolvimento de softwares É o processo de escrita de um programa de computador para executar uma série de tarefas automaticamente. Estas tarefas servem desde para garantia do funcionamento como para perfomance de um software.
  • 5. performance para frontend Desde o surgimento do HTML5, construir aplicações Web ficou mais complexo. A complexidade não está só nas linguagens, que evoluiram muito nos últimos anos. Mas também na diversidade de dispositivos para acessar a Internet, que aumentaram rapidamente.
  • 6. build de frontend O build é a versão final compilada de um software. No caso do frontend é o pacote de código fonte já testado e otimizado.
  • 7. Tasks para construção do build ● Testes de JS (unit & e2e) ● CSS pré processado ● Gerenciamento de Sprites (imagens do CSS) ● Concatenação e minização dos arquivos JS e CSS
  • 8. Tasks para construção do build ● Output de template engines ● Minimização de imagens ● Minimização de html ● Validação de código (w3c, lint …) entre outras...
  • 10. GRUNT JS npm + Node.js
  • 11. GRUNT JS: instalação sudo npm install -g grunt-cli
  • 12. GRUNT JS: preparando seu projeto package.json Gruntfile.js
  • 13. GRUNT JS: package.json { "name": "my-project-name", "version": "0.1.0", "devDependencies": { "grunt": "~0.4.2", "grunt-contrib-jshint": "~0.6.3", "grunt-contrib-nodeunit": "~0.2.0", "grunt-contrib-uglify": "~0.2.2" } }
  • 14. GRUNT JS: Gruntfile.js module.exports = function(grunt) { // Project configuration. grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), uglify: { options: { banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */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'); // Default task(s). grunt.registerTask('default', ['uglify']); };
  • 16. referências ● http://www.targettrust.com.br/blog/o-que-e-automacao-de-teste-de- software/ ● http://pt.wikipedia.org/wiki/Automa%C3%A7%C3%A3o ● http://pt.wikipedia.org/wiki/Build ● http://www.infoq.com/br/presentationt-end-ops ● http://www.voltsdigital.com.br/labs/gruntjs-por-onde-comecar/ ● http://www.nomensa.com/blog/2014/an-introduction-to-automating- front-end-build-processes-using-grunt/ ● http://gruntjs.com/