Até recentemente, eu carregava tarefas do Grunt uma por linha – como sugerido pela documentação . Mas logo acabei com uma lista de tarefas desagradável.
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-requirejs');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-less');
No entanto, recentemente me deparei com algumas abordagens alternativas para isso. O primeiro que encontrei enquanto navegava pelo Ghost no Github. Eles usam um pacote npm chamado matchdep que permite filtrar dependências em seu package.json
npm install matchdep
Em seguida, em seu Gruntfile, filtre suas devDependencies usando ..
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
ou suas dependências regulares usando
require('matchdep').filter('grunt-*').forEach(grunt.loadNpmTasks);
Como alternativa, me deparei com outro pacote chamado load-grunt-tasks enquanto brincava com o Yeoman.
npm install load-grunt-tasks
e então em seu Gruntfile
require('load-grunt-tasks')(grunt);