以编程方式将parameter passing给grunt任务?
我有一个咕噜的任务,调用其他咕tasks任务。 我想用程序确定的参数调用一个子任务。 这可能吗? 我花了一些时间挖掘lib / grunt.js和lib / grunt / task.js ,但无法弄清楚。
我使用grunt-compass
和Gruntfile.js中指定的以下参数:
compass: { default_options: { src: 'components/201', dest: 'build', require: ['zurb-foundation'] } }
我希望能够在运行时覆盖它们:
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}); }); };
以供参考:
$ grunt --version grunt-cli v0.1.6 grunt v0.4.0rc6
我想到了。 使用Gruntfile.js中的<%= %>
语法:
compass: { default_options: { src: 'components/<%= myTask.src %>', dest: 'build', require: ['zurb-foundation'] } }
那么你可以在你的任务中设置它:
grunt.config.set('myTask.src', getSrc());
你可以编辑所有的Gruntconfiguration:
grunt.config('compass.default_options.src', 'blabla');
就在运行任务之前。 但是你的解决scheme是“更清洁”的。