2013-08-30 3 views
0

Я пытаюсь установить свойство в grunt с помощью команды grunt.config(<property>, <value>), и grunt не убежит от периода ., который находится в моем имени свойства, и превращает его в новый объект json , Я просматриваю список проектов и создаю список меньших файлов. Вот код.Установка свойства в 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

Что конечная цель этой конфигурации? Разве нет более простого способа сделать это? – Ben

ответ

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:[] 
    } 
    } 
}) 
Смежные вопросы