O Grunt foi desenvolvido pelo @cowboy com o objetivo de automatizar tarefas para desenvolvedores. Com ele é possível minificar, concatenar, automatizar deploy e outras pencas de funcionalidades que são realizadas com o Grunt através da penca de plugins que já existem para essa ferramenta.
Primeiro passo: como instalar
Como todos devem saber o Grunt roda no node.js, sendo assim você precisa ter ele instalado, assim como o npm. Feito isso, caso você tenha instalado ele alguma vez, recomendo que desinstale, senão com certeza você vai ter problemas no futuro, então vai lá:
sudo npm uninstall -g grunt
Vamos instalar o grunt-cli, assim podemos rodar diferentes versões do Grunt em diferentes projetos, e o melhor, até simultaneamente!
Agora sim, sem qualquer receio, mete ficha:
sudo npm install -g grunt-cli
Segundo passo: iniciando um projeto
Há duas formas de iniciar um projeto com Grunt. A primeira é com o comando grunt-init passando o template que você deseja, por exemplo, um projeto para um módulo node.js:
grunt-init node
Depois disso ele cria um scaffolding a partir do template que você escolheu.
A outra forma é criar sem templates. Você precisará de um arquivo package.json e o Gruntfile.js.
package.json
Esse json deve conter informações do seu projeto. Você pode gerar ele através do comando npm init. Segue abaixo um exemplo básico de um package.json:
{ "name": "and-after", "version": "1.0.0", "description": "Design e Tecnologia por sua conta", "keywords": ["tecnologia, desenvolvimento"] "author": "And After" }
Gruntfile.js
O Gruntfile.js é onde você vai escrever suas tarefas, carregar os plugins e as configurações da sua aplicação. Exemplo:
module.exports = function(grunt) { 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' } } });
// tarefas grunt.loadNpmTasks('grunt-contrib-uglify');
// plugin grunt.registerTask('default', ['compass', uglify']); }; }
Nesse caso eu tenho uma tarefa, unglify. Para rodar basta passar grunt nomedatarefa.
Aproveitando o espaço, aproveito para mostrar o grunt watch. Caso você não conheça, vale dar uma olhada. Ele fica “assistindo” suas mudanças e a cada adição, exclusão e alteração de arquivos, é rodado suas tarefas sem precisar ir no terminal. É demais! Um exemplo dessa tarefa:
watch: {
jshint: {
files: '**/*.js',
tasks: ['jshint']
},
concat: {
files: '**/*.js', tasks: ['jshint', 'concat:dist', 'uglify'] } }
Feito isso é só rodar grunt watch e ele fica alerta à toda mudança e executa as tarefas automaticamente, no caso jshint e concat.
Moçada, acho que é isso. Não vivo mais sem o Grunt. Se curtiu, aproveita e vota nele para “Projeto Open Source do ano” no .net awards.
Referências:
http://gruntjs.com/
http://weblog.bocoup.com/introducing-grunt/
Deixe um comentário