使用 Grunt 迭代模板
Using Grunt to iterate over templates
我正在构建一个 grunt 文件,我有 2 个文件夹需要应用相同的 grunt 任务。我希望能够使用 grunt template
属性 遍历每个文件夹,这样我就不必通过重复配置对象来膨胀我的 grunt 配置对象。像这样:
app1: {
name: 'app1',
src: ['src/app/<%= app1.name %>'],
jsTpl: ['<%= distdir %>/<%= app1.name %>/templates/**/*.js'],
js: '<%= app1.src %>/**/*.js'
},
app2 {
name: 'app2',
src: ['src/app/<%= app2.name %>'],
jsTpl: ['<%= distdir %>/<%= app2.name %>/templates/**/*.js'],
js: '<%= app2.src %>/**/*.js'
},
concat: {
app1: {
src: ['<%= app1.src %>'],
dest: ['dist']
},
app2: {
src: ['<%= app2.src %>'],
dest: ['dist/<%= app2.name %>']
}
}
如果不必重复 app1
和 app2
将是理想且非常干燥的——相反,通过某种配置将它们组合在一起会很棒。但我似乎无法弄清楚该怎么做。谢谢你的帮助!
谢谢!
Grunt只是一个普通的JS,所以你可以创建一个函数来生成你的配置对象。
function appConfig(appName){
return {
name: appName,
src: ['src/app/' + appName],
jsTpl: ['<%= distdir %>/' + appName + '/templates/**/*.js'],
js: 'src/app/**/*.js'
};
}
然后在设置配置时调用此函数
app1: appConfig('app1'),
app2: appConfig('app2'),
concat: {
app1: {
src: ['<%= app1.src %>'],
dest: ['dist']
},
app2: {
src: ['<%= app2.src %>'],
dest: ['dist/<%= app2.name %>']
}
}
我正在构建一个 grunt 文件,我有 2 个文件夹需要应用相同的 grunt 任务。我希望能够使用 grunt template
属性 遍历每个文件夹,这样我就不必通过重复配置对象来膨胀我的 grunt 配置对象。像这样:
app1: {
name: 'app1',
src: ['src/app/<%= app1.name %>'],
jsTpl: ['<%= distdir %>/<%= app1.name %>/templates/**/*.js'],
js: '<%= app1.src %>/**/*.js'
},
app2 {
name: 'app2',
src: ['src/app/<%= app2.name %>'],
jsTpl: ['<%= distdir %>/<%= app2.name %>/templates/**/*.js'],
js: '<%= app2.src %>/**/*.js'
},
concat: {
app1: {
src: ['<%= app1.src %>'],
dest: ['dist']
},
app2: {
src: ['<%= app2.src %>'],
dest: ['dist/<%= app2.name %>']
}
}
如果不必重复 app1
和 app2
将是理想且非常干燥的——相反,通过某种配置将它们组合在一起会很棒。但我似乎无法弄清楚该怎么做。谢谢你的帮助!
谢谢!
Grunt只是一个普通的JS,所以你可以创建一个函数来生成你的配置对象。
function appConfig(appName){
return {
name: appName,
src: ['src/app/' + appName],
jsTpl: ['<%= distdir %>/' + appName + '/templates/**/*.js'],
js: 'src/app/**/*.js'
};
}
然后在设置配置时调用此函数
app1: appConfig('app1'),
app2: appConfig('app2'),
concat: {
app1: {
src: ['<%= app1.src %>'],
dest: ['dist']
},
app2: {
src: ['<%= app2.src %>'],
dest: ['dist/<%= app2.name %>']
}
}