package.json を定義した変数に基づいてセット ファイルを連結する必要があります。
// package.json
...
"layouts": [
{
"page": "home",
"version": "a"
},
{
"page": "about",
"version": "a"
},
{
"page": "contact",
"version": "b"
}
]
...
grunt では、これらを JSON 配列に構築し、それをsrc
grunt-concat-contrib タスクのパラメーターに送り込みます。
// 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)
パス変数をコンソールに記録した場所からコピーした次のような配列を手動で入力すると、機能します!
var paths = ["layouts/home/a/*.php","layouts/about/a/*.php","layouts/contact/b/*.php"];
私は何が欠けていますか?