javascript - img - title label html
¿Cómo puedo ejecutar una tarea gruñona desde dentro de una tarea gruñona? (4)
Aquí hay un ejemplo de configurar manualmente una tarea dentro de una tarea y luego ejecutarla.
https://github.com/gruntjs/grunt-contrib/issues/118#issuecomment-8482130
grunt.registerMultiTask(''multicss'', ''Minify CSS files in a folder'', function() {
var count = 0;
grunt.file.expandFiles(this.data).forEach(function(file) {
var property = ''mincss.css''+count+''.files'';
var value = {};
value[file] = file;
grunt.config(property, value);
grunt.log.writeln("Minifying CSS "+file);
count++;
});
grunt.task.run(''mincss'');
});
Creé una nueva tarea de grunt y dentro de ella quiero usar grunt-contrib-concat para concatenar algunos archivos juntos.
Miré a través de los documentos pero no encontré nada que sugiriera que podía hacer esto. Parece un caso de uso trivial, así que probablemente estoy buscando algo más.
Actualización 1:
También quiero poder configurar esta tarea desde mi tarea personalizada.
Por ejemplo, creo una lista de archivos en mi tarea personalizada. Después de tener esa lista, quiero pasarlos a la tarea concat. ¿Cómo puedo hacer eso?
Me gustaría poder hacer algo como esto.
grunt.task.run(''concat'', { src: [''file1'',''file2''], dest: ''out.js''})
Actualización 2:
Para lograr lo que quiero, tengo que configurar manualmente la tarea de grunt. Aquí hay un ejemplo que me mostró lo que quería.
https://github.com/gruntjs/grunt-contrib/issues/118#issuecomment-8482130
Desde https://github.com/gruntjs/grunt/wiki/Creating-tasks
grunt.registerTask(''foo'', ''My "foo" task.'', function() {
// Enqueue "bar" and "baz" tasks, to run after "foo" finishes, in-order.
grunt.task.run(''bar'', ''baz'');
// Or:
grunt.task.run([''bar'', ''baz'']);
});
Gracias a Arron que nos señaló en la dirección correcta a su propia pregunta. El grunt.config es la clave del ejemplo anterior. Esta tarea anulará la propiedad src de la tarea browserify
Definición de la tarea:
grunt.registerTask(''tests'', function (spec) {
if (spec) {
grunt.config(''browserify.tests.src'', spec);
}
grunt.task.run([''jshint'', ''browserify:tests'', ''jasmine'']);
});
Llamada de tarea:
grunt tests
o
grunt tests:somewhere/specPath.js
Si se siente flojo, terminé publicando un módulo npm que reenvía las configuraciones desde su tarea a la subtarea que desea ejecutar: