我正在尝试使用命令grunt.config(<property>, <value>)
在grunt中设置属性,并且grunt不会转义属于我的属性名称的句点.
,并将其转换为新的json对象。我正在循环一个项目列表并创建一个较少文件的列表。这是代码。
grunt.config('projects').forEach(function(project) {
grunt.config('less.development.files.' + project + '.less', 'project/' + project + '.css');
});
我希望结果是一个json对象,其键和一个css值较小,如project.less : project.css
。
这给了我一个看起来像这样的json对象
{
"file1": {
"less": "project\/file1.css"
},
"file2": {
"less": "project\/file2.css"
},
"file3": {
"less": "project\/file3.css"
}
}
如果我将文件名从.less
更改为_less
,那么该对象看起来就像我想要的那样。
{
"file1_less": "project\/file1.css",
"file2_less": "project\/file2.css",
"file3_less": "project\/file3.css",
}
但我希望它是.less
。我该怎么做才能使Grunt不将其创建为新对象?我尝试过双引号,单引号,带引号的单引号,并将键/值推入变量名并使用变量。这些都没有奏效。有没有人有任何其他想法?谢谢您的帮助。
答案 0 :(得分:0)
这应该有效:
grunt.config('projects').forEach(function(project) {
grunt.config.data.less.development.files[project + '.less'] = 'project/' + project + '.css';
});
基本上,您希望使用带有.less的连接字符串作为键,以便您可以使用方括号表示法直接通过grunt.config.data.less.development.files
对象访问它。
假设您已经有一个占位符,如:
grunt.config.init({
less:{
development:{
files:[]
}
}
})