在 Gruntfile.js 中动态合并 JSON 个文件
Dynamic merge of JSON files in Gruntfile.js
在我的 gruntfile.js 中,我正在使用这个插件 `grunt.loadNpmTasks('grunt-json-merge');我正在尝试使用此代码合并两个 JSON 文件:
json_merge: {
files: {
files: { 'dest/resources/locales/merged.json':
function () {
var includedScripts = [];
includedScripts.push(project_x+'/locales/locale-fr.json');
includedScripts.push(project_y+'/locales/locale-fr.json');
return includedScripts;
}
},
},
}
我得到Warning: pattern.indexOf is not a function Use --force to continue.
注意:我需要使用函数 来定义输入值 ,因为它包含一些变量,也许我稍后需要集成一个 for
循环。
问题是files对象中的一个条目的值应该是一个数组,但是因为你没有调用函数,只是声明了它,值是一个函数。
这应该有效:
json_merge: {
files: {
files: { 'dest/resources/locales/merged.json':
(function () {
var includedScripts = [];
includedScripts.push(project_x+'/locales/locale-fr.json');
includedScripts.push(project_y+'/locales/locale-fr.json');
return includedScripts;
})() // call the function here to return the array
},
}
}
但您可能还会发现提取函数、为其命名,然后在任务中按名称调用它更方便:
function getJSONFilesToMerge () {
var includedScripts = [];
includedScripts.push(project_x+'/locales/locale-fr.json');
includedScripts.push(project_y+'/locales/locale-fr.json');
return includedScripts;
}
// .....
json_merge: {
files: {
files: {
'dest/resources/locales/merged.json': getJSONFilesToMerge()
},
}
}
在我的 gruntfile.js 中,我正在使用这个插件 `grunt.loadNpmTasks('grunt-json-merge');我正在尝试使用此代码合并两个 JSON 文件:
json_merge: {
files: {
files: { 'dest/resources/locales/merged.json':
function () {
var includedScripts = [];
includedScripts.push(project_x+'/locales/locale-fr.json');
includedScripts.push(project_y+'/locales/locale-fr.json');
return includedScripts;
}
},
},
}
我得到Warning: pattern.indexOf is not a function Use --force to continue.
注意:我需要使用函数 来定义输入值 ,因为它包含一些变量,也许我稍后需要集成一个 for
循环。
问题是files对象中的一个条目的值应该是一个数组,但是因为你没有调用函数,只是声明了它,值是一个函数。
这应该有效:
json_merge: {
files: {
files: { 'dest/resources/locales/merged.json':
(function () {
var includedScripts = [];
includedScripts.push(project_x+'/locales/locale-fr.json');
includedScripts.push(project_y+'/locales/locale-fr.json');
return includedScripts;
})() // call the function here to return the array
},
}
}
但您可能还会发现提取函数、为其命名,然后在任务中按名称调用它更方便:
function getJSONFilesToMerge () {
var includedScripts = [];
includedScripts.push(project_x+'/locales/locale-fr.json');
includedScripts.push(project_y+'/locales/locale-fr.json');
return includedScripts;
}
// .....
json_merge: {
files: {
files: {
'dest/resources/locales/merged.json': getJSONFilesToMerge()
},
}
}