Мне нужно объединить набор файлов на основе переменных, которые я определил в свой пакет package.json.Создайте динамический массив для использования в grunt concat
// package.json
...
"layouts": [
{
"page": "home",
"version": "a"
},
{
"page": "about",
"version": "a"
},
{
"page": "contact",
"version": "b"
}
]
...
В ворчание я тогда строить их в массив JSON и насосное его в параметр src
в моей хрюкать-CONCAT-вно задачи.
// gruntfile.js
...
var package = grunt.file.readJSON('package.json'),
targets = package.layouts,
paths = [];
for (var target = 0; target < targets.length; target++) {
paths.push("layouts/" + targets[target]['page'] + "/" + targets[target]['version'] + "/*.php");
};
var paths = JSON.stringify(paths);
grunt.log.write(paths); // Writing this to console for debugging
grunt.initConfig({
concat: {
build: {
src: paths,
dest: 'mysite/Code.php',
options: {
separator: '?>\n\n'
}
}
}
});
...
Моя проблема заключается в том, что переменная paths
не работает внутри initConfig
, когда он назначен JSON.stringify(paths)
.
Если я вручную ввешу массив как следующий, который я скопировал, откуда я зарегистрировал переменную paths на консоли, он работает!
var paths = ["layouts/home/a/*.php","layouts/about/a/*.php","layouts/contact/b/*.php"];
Что мне не хватает?