lw
programação
64
locaweb
Grunt.js
Ilustra-se com um exemplo que
configura e carrega os plugins JSHint
e Concat. Na pasta raiz do projeto
execute, com acesso de administrador,
os seguintes comandos:
npm install grunt-contrib-jshint
--save-dev
npm install grunt-contrib-concat
--save-dev
A função “wrapper” precisará
fazer as configurações do projeto e
dos plugins. Em seguida, precisará
carregar os plugins que estão no npm e
fazer o registro das tarefas.
As configurações devem ser
nomeadas e passadas como
argumentos do método grunt.
initConfig. No código fornecido
como exemplo, as configurações do
projeto, reunidas na tarefa pkg, são
obtidas a partir da leitura do arquivo
package.json. As configurações do
plugin Concat e do plugin JSHint
são construídas a partir das variáveis
bannerContent e name.
O arquivo Gruntfile.js completo para
o exemplo que configura e carrega
as configurações do projeto com os
plugins Concat e JShint é:
module.exports = function(grunt) {
var bannerContent = '... banner
template ...';
var name = '<%= pkg.name %>-v<%=
pkg.version%>';
grunt.initConfig({
// configurações do projeto
pkg : grunt.file.readJSON
('package.json'),
// configurações do plugin Concat
concat: {
options: {
banner: bannerContent
},
target : {
src : ['src/**/*.js'],
dest : 'distrib/' + name + '.js'
}
},
// configurações do plugin JSHint
jshint: {
options: {
eqeqeq: true,
trailing: true
},
target: {
src : ['src/**/*.js', 'test/**/*.js']
}
Excelentes projetos usam Grunt.js, entre eles estão jQuery e CanJS;
para ver outros projetos, acesse
O programa permite o uso de plugins, que também podem ser adquiridos
em seu site oficial; vale a pena recorrer ao programa para realizar tarefas
}
});
// carregando os plugins
grunt.loadNpmTasks
('grunt-contrib-jshint');
grunt.loadNpmTasks
('grunt-contrib-concat');
// registrando tarefas com nome 'default'
grunt.registerTask('default',
['jshint', 'concat']);
};
Conclusão
A ideia do Grunt.js pode ser difícil
de engolir no começo. Primeiro, parece
apenas mais um dos descendentes do
make. Logo depois, ele parece apenas
uma reinvenção do cron, o velho
gerenciador de tarefas de sistemas Unix.
Porém, uma análise mais cuidadosa
revela que é o melhor das duas
ferramentas em um único programa.
Sendo flexível e altamente customizável,
com o Grunt.js, você pode fazer
maravilhas e acabar com as diversas
“tarefas grunt” do desenvolvimento
do seu projeto. Vale a pena conhecer
melhor a ferramenta, testando-a e
avaliando suas características.