Grunt 连接多个 JSON 个文件

Grunt concat multiple JSON files

我有多个 JSON 文件,每个文件位于不同的路径中。 现在我正在尝试用 "grunt-concat-json".

连接所有文件

源 JSON 文件如下所示:

ExampleA.json

[ {
     "configPath": "Example A"
} ]

ExampleB.json

[ {
   "configPath": "Example B"
} ]

如何配置我的 GRUNT 任务以获得以下结果JSON 文件:

[
   {
       "configPath": "Example A"
   },
   {
       "configPath": "Example B"
   } ]

我试过这个配置:

concat: {
 json:
     {
        src: [
                'pathA/ExampleA.json',
                'pathB/ExampleB.json
            ],
        dest: 'pathX/Merged.json',
            options: {
                separator: ','
            }
        }
    },

使用此设置我得到以下结果:

[
    {
       "configPath": "Example A"
    }
],
[
   {
       "configPath": "Example B"
   }
] 

但我的结果 JSON 应该只有一个数组,我可以在我的代码中像

那样循环遍历它
configPaths.forEach(configPath) {  ...  }

这是一个非常基本的零验证实现,应该足以让您入门。

grunt.registerMultiTask('concatArrays', 'concatArrays', function() {
    this.files.forEach(function(_set) {
        var combined = [];
        _set.src.forEach(function(_file) {
            combined = combined.concat(JSON.parse(grunt.file.read(_file)));
        });
        grunt.file.write(_set.dest, JSON.stringify(combined));
    });
});

您可以像这样配置文件集:

concatArrays: {
    local: {
        files: [{
            src: ['a.json', 'b.json'],
            dest: 'combined.json'
        }],
    }
}