如何动态设置grunt<%= var%>

时间:2015-07-27 16:59:42

标签: gruntjs

如何更改grunt变量的值(<%= var%>) 在运行任务之前?

我有以下代码,但它似乎没有处理json并用新值交换占位符(<%= var%>)。

module.exports = function(grunt) {
var modules = ['a','b','c'];

grunt.initConfig({
    module: module,
    som_task: {
        blah: {
            files: 'test/<%= module %>',['<%= module %>']
        }
    }
});
grunt.registerTask('release-all', 'abc', function() {
    for (var module in modules) {
        grunt.task.run(['setModule:'+module,'release']);    
    }

});
grunt.registerTask('setModule', 'change the variable in the ', function(module) {
    grunt.config('module',module);
});

}

1 个答案:

答案 0 :(得分:0)

我找到了答案。我创建了一个函数,用另一个变量返回配置对象,然后在运行我的任务之前重新启动它。

function getConfig(value) {
    return {
        "value":value,
        ...
    };
}
grunt.registerTask('change', 'Swap Value', function(passValue) {
    grunt.initConfig(getConfig(passValue));
});

//set the default
grunt.initConfig(getConfig("initialValue"));

//run the task and pass in the new value before running your other task
runt.task.run(['change:newValue']);