Sunday, May 19, 2024
 Popular · Latest · Hot · Upcoming
52
rated 0 times [  57] [ 5]  / answers: 1 / hits: 21590  / 12 Years ago, fri, february 8, 2013, 12:00:00

I have a grunt task that calls other grunt tasks. I want to call a subtask with programmatically determined arguments. Is this possible? I spent some time digging around the lib/grunt.js and lib/grunt/task.js, but couldn't figure it out.



I'm using grunt-compass with the following arguments specified in Gruntfile.js:



compass: {
default_options: {
src: 'components/201',
dest: 'build',
require: ['zurb-foundation']
}
}


I want to be able to override them at runtime:



tasks/my-task.js:



// simplified example
module.exports = function(grunt) {
grunt.registerTask('foo', 'bar', function() {
var chooseDest = doWork();
grunt.task.run('compass', {src: 'src', dest: chooseDest});
});
};


For reference:



$ grunt --version
grunt-cli v0.1.6
grunt v0.4.0rc6

More From » node.js

 Answers
26

I figured it out. Use the <%= %> syntax in Gruntfile.js:



compass: {
default_options: {
src: 'components/<%= myTask.src %>',
dest: 'build',
require: ['zurb-foundation']
}
}


Then you can set it in your task:



grunt.config.set('myTask.src', getSrc());

[#80337] Thursday, February 7, 2013, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
jamie

Total Points: 257
Total Questions: 102
Total Answers: 95

Location: Bonaire
Member since Wed, Mar 29, 2023
1 Year ago
;