Coffeescript 在Grunt中为不同的目标编写相同的配置
我有一个任务,在我的GrunFile上有不同的目标,所有目标都包含完全相同的字段,只更改名称。是否可以通过编程方式创建这些目标,只传递目标列表 我的目标是创建一个已安装子模块的列表,并为每个子模块创建一个具有目标的任务。具体来说,任务不是我的,我正在尝试为coffee任务创建目标以编译一些文件,但稍后我还需要对Handlebar模板执行相同的操作 我尝试过创建一个通用目标并按如下方式传递子模块名称:Coffeescript 在Grunt中为不同的目标编写相同的配置,coffeescript,handlebars.js,gruntjs,Coffeescript,Handlebars.js,Gruntjs,我有一个任务,在我的GrunFile上有不同的目标,所有目标都包含完全相同的字段,只更改名称。是否可以通过编程方式创建这些目标,只传递目标列表 我的目标是创建一个已安装子模块的列表,并为每个子模块创建一个具有目标的任务。具体来说,任务不是我的,我正在尝试为coffee任务创建目标以编译一些文件,但稍后我还需要对Handlebar模板执行相同的操作 我尝试过创建一个通用目标并按如下方式传递子模块名称: grunt.initConfig( task: { target: {
grunt.initConfig(
task: {
target: {
expand: true,
flatten: true,
cwd: "<%= AppModulesPaths[grunt.task.current.args[0]] %>" #"<%= frontend_src %>",
src: ["<%= AppModulesSources[grunt.task.current.args[0]]%>"],
dest: "<%= frontend_tmp %>",
rename: function(dest, src){
return dest + "<%= grunt.task.current.args[0] %>.js"
}
}
}
})
grunt.initConfig(
任务:{
目标:{
是的,
扁平化:是的,
cwd:“#”,
src:[“”],
目的地:“,
重命名:函数(dest,src){
返回dest+“.js”
}
}
}
})
然后用task:target:targetname注册一个任务数组,但它抱怨args未定义
有什么好办法吗 当然,它只是简单的JavaScript
function config (targets) {
var result = {};
targets.forEach(function (target) {
result[target] = {
// target configuration here,
// optionally tailored to the target's name
};
});
return result;
}
那么,就用它吧
grunt.initConfig({
task: config(['target', 'target2', 'target3', 'targetN'])
});
谢谢!但它仍然不起作用。当从initConfig调用config时,它会说“undefined不是一个函数”。我尝试在调用initConfig之前和之后定义函数(但在外部),没有luckCheck out示例fiddle。您可能已经有了一个配置变量,我将其重命名为
multi
,这样您就不会在我的代码中得到名称clashing。我将函数命名为coffeeConfig,但它不起作用。我找到了一个解决方法,创建一个包含所有属性的Javascript对象,并在设置完所有内容(包括函数调用)后,使用该对象调用initConfig。我可以改变你的密码作为答案吗?