Я использую grunt-contrib-less и grunt-contrib-watch вместе. Моя задача less использует формат массива файлов для определения нескольких src и dest. Я хотел бы сослаться на те же файлы из задачи просмотра. Так:
grunt.initConfig({
less: {
build: {
files: [
{src: 'src/aa.less', dest: 'dest/a.css'},
{src: 'src/aa1.less', dest: 'dest/a1.css'}
]
}
},
watch: {
less: {
files: '<%= less.build.files %>',
tasks: ['less']
}
}
});
Этот шаблон подчеркивания работает, но часы не могут обрабатывать формат массива файлов, он принимает ввод файла только в виде строки или массива строк. Вот что я пробовал:
'<%= less.build.files.src %>'
не работает, потому что less.build.files — это массив, а не объект.'<%= _(less.build.files).pluck("src").value() %>'
не работает, потому что, несмотря на то, что он составляет правильный список файлов, он разрешается в одну строку'src/aa.less,src/aa1.less'
, а не в массив.'{<%= _(less.build.files).pluck("src") %>}'
работает, как предлагается здесь https://stackoverflow.com/a/21608021/490592, но это не так хорошо чувстовать. Я пытаюсь настроить таргетинг на определенный набор файлов, а не на совпадение с шаблоном из всего каталога моего проекта.grunt.config.set('watch.less.files', _(grunt.config.get('less.build.files')).pluck('src').value());
работает, но это должно быть отдельно от initConfig.
Есть ли более элегантный способ сделать это?