with tutorial the started serve grunt getting cli gruntjs

gruntjs - tutorial - gulp js



Mapeo dinĂ¡mico para destinos en grunt.js (1)

Tengo un proyecto con varias subcarpetas que contienen archivos JavaScript que deseo concatenar. ¿Cuál sería la forma correcta de configurarlos?

p.ej.

fuente: /modules/$modulename/js/*.js (varios archivos) dest: /modules/$modulename/js/compiled.js

Entonces, lo que quiero hacer es compilar archivos js de un recuento de subcarpetas desconocido / no configurado ($ nombre de módulo) en un archivo por subcarpeta.

es posible?

La siguiente función (construida después de las instrucciones de hereandnow78) hace el trabajo:

grunt.registerTask(''preparemodulejs'', ''iterates over all module directories and compiles modules js files'', function() { // read all subdirectories from your modules folder grunt.file.expand(''./modules/*'').forEach(function(dir){ // get the current concat config var concat = grunt.config.get(''concat'') || {}; // set the config for this modulename-directory concat[dir] = { src: [dir + ''/js/*.js'', ''!'' + dir + ''/js/compiled.js''], dest: dir + ''/js/compiled.js'' }; // save the new concat config grunt.config.set(''concat'', concat); }); });

después de eso puse preparemodulejs antes del trabajo concat en mi configuración predeterminada.


probablemente necesitará codificar su propia tarea, en la que repita en sus subcarpetas y agregue dinámicamente a su configuración de concat.

grunt.registerTask("your-task-name", "your description", function() { // read all subdirectories from your modules folder grunt.file.expand("./modules/*").forEach(function (dir) { // get the current concat config var concat = grunt.config.get(''concat'') || {}; // set the config for this modulename-directory concat[dir] = { src: [''/modules/'' + dir + ''/js/*.js'', ''!/modules/'' + dir + ''/js/compiled.js''], dest: ''/modules/'' + dir + ''/js/compiled.js'' }; // save the new concat configuration grunt.config.set(''concat'', concat); }); // when finished run the concatinations grunt.task.run(''concat''); });

ejecuta esto con:

$ grunt your-task-name

Este código no está probado, pero creo que debería hacer su trabajo.

SUGERENCIA: puede poner este código en un archivo externo e incluirlo en su archivo de registro de grietas si desea mantener su archivo de archivos de gruñido pequeño, por ejemplo, colocarlo en un archivo dentro de un directorio de tareas:

module.exports = function(grunt) { grunt.registerTask("your-task-name", "your description", function() { ... }); };

y cargue en su gruntfile:

grunt.loadTasks("./tasks");