Grunt Task for Merging Multiple JSON Files into JS
This plugin requires Grunt ~0.4.0
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-merge-json-to-js --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-merge-json-to-js');
replacer
: (defaultnull
) the replacer argument forJSON.stringify()
(second argument).space
: (default\t
) the space argument forJSON.stringify()
(third argument).
Run this task with the grunt merge-json-to-js
command.
Task targets, files and options may be specified according to the Grunt Configuring tasks guide.
Assuming we have the following types of source JSON files:
src/foo/foo-en.json
:
{
"foo": {
"title": "The Foo",
"name": "A wonderful component"
}
}
src/bar/bar-en.json
:
{
"bar": {
"title": "The Bar",
"name": "An even more wonderful component"
}
}
Assuming we want to generate the following destination JS file:
var translations = window.translations || {}; translations.en = {
"foo": {
"title": "The Foo",
"name": "A wonderful component"
},
"bar": {
"title": "The Bar",
"name": "An even more wonderful component"
}
}
grunt.initConfig({
"merge-json-to-js": {
"en": {
src: [ "src/**/*-en.json" ],
dest: "www/en.json"
},
"de": {
src: [ "src/**/*-de.json" ],
dest: "www/de.json"
}
}
});
grunt.initConfig({
"merge-json-to-js": {
"i18n": {
files: {
"www/en.json": [ "src/**/*-en.json" ],
"www/de.json": [ "src/**/*-de.json" ]
}
}
}
});