J'ai une tâche de grognement qui appelle d'autres tâches de grognement. Je veux appeler une sous-tâche avec des arguments déterminés par programme. Est-ce possible? J'ai passé un peu de temps à fouiller dans les lib/grunt.js et lib/grunt/task.js, mais je n'ai pas pu le comprendre.
J'utilise grunt-compass
avec les arguments suivants spécifiés dans Gruntfile.js:
compass: {
default_options: {
src: 'components/201',
dest: 'build',
require: ['zurb-foundation']
}
}
Je veux pouvoir les remplacer lors de l'exécution:
tâches/ma-tâche.js:
// simplified example
module.exports = function(grunt) {
grunt.registerTask('foo', 'bar', function() {
var chooseDest = doWork();
grunt.task.run('compass', {src: 'src', dest: chooseDest});
});
};
Pour référence:
$ grunt --version
grunt-cli v0.1.6
grunt v0.4.0rc6
Je l'ai compris. Utilisez le <%= %>
syntaxe dans Gruntfile.js:
compass: {
default_options: {
src: 'components/<%= myTask.src %>',
dest: 'build',
require: ['zurb-foundation']
}
}
Ensuite, vous pouvez le définir dans votre tâche:
grunt.config.set('myTask.src', getSrc());
Vous pouvez éditer toutes les configurations de Grunt:
grunt.config('compass.default_options.src', 'blabla');
Juste avant d'exécuter la tâche. Mais votre solution est "plus propre".