1.0.1 • Published 8 years ago

json-merge-webpack-plugin v1.0.1

Weekly downloads
91
License
MIT
Repository
github
Last release
8 years ago

Merge json files

Merge Json files using this webpack plugin.

For example,it will be useful to merge i18n json files which are in different modules into a single final json files in angular2 or react modules.

Usage

Install with npm

npm i json-merge-webpack-plugin
 var JSONMergeWebpackPlugin = require("json-merge-webpack-plugin")
 new JSONMergeWebpackPlugin({
            "files": ['./jsons/file1.json',
                './jsons/file3.json',
                './jsons/file2.json'],
            "output":{
                "fileName":"./dist/result.json"
            }
        })

Details

You can specify either files or groupBy under output.

  1. By files
    If you want to merge group of files use like this.
    new JSONMergeWebpackPlugin
       ({                                           
            "files": ['./jsons/file1.json','./jsons/file3.json','./jsons/file2.json'],
            "output":{
                      "fileName":"./dist/result.json"                         
                     }
       })
                       
Field NameDescription
filesArray of json files to be merged
output.fileNameName of merged output file ,relative path from output.path entry
encodingOptional,encoding to be used default is utf-8
stringsOptional,object with pre and post strings
  1. By Patterns
    This plugin uses glob for searching file patterns,please refer glob for usage for sample pattern. You can specify a pattern to pull all the files that satify the particular pattern and output a single json file.
       new JSONMergeWebpackPlugin({
                   "encoding":"ascii",
                   "output":{
                     "groupBy":[
                                   { "pattern":"{./jsons/module*/en.json,./jsons/file1.json}", 
                                      "fileName":"./dist/en.json" 
                                   },
                                   { "pattern":"{./jsons/module*/es.json,./jsons/file2.json}", 
                                       "fileName":"./dist/es.json" }
                               ]        
                           },
                    "strings": {
                        "pre": "/* <comments_string_in_json> */"
                        "post": "/* <comments_ends_string_in_json> */"
                    }
                  })  
groupByArray of patterns and corresponding fileNames.
groupBy[].patternPattern to search files for. eg: **/en.json will pull all en.json files under current working directory and sub directories
Do not use curly brackets if there is only single pattern to considerpattern:"./node_modules/**/en.json"
Use curly brackets to group more than one pattern togetherpattern:"{./node_modules/**/en.json,./src/assets/i18n/en.json}"
groupBy[].fileNameoutput file name for the corresponding pattern.Relative path from output.path entry
encodingOptional,encoding to be used default is utf-8
stringsOptional,object with pre and post strings for appending to output JSON

Sample

Please navigate to example folder

   cd example
   > npm install
   > npm start

Access the web application at

 http://localhost:8080

##References