Napoleon's Pixelated Mugshot

    merge-json-webpack-plugin
    TypeScript icon, indicating that this package has built-in type declarations

    6.1.0 • Public • Published

    merge-json-webpack-plugin

    Tests License Version Node Version Webpack Version

    Webpack plugin to merge multiple json files into one

    Getting Started

    Installation

    npm i -D merge-json-webpack-plugin
    # or
    yarn add --dev merge-json-webpack-plugin

    Usage

    // webpack.config.js
    const MergeJsonPlugin = require('merge-json-webpack-plugin');
    
    module.exports = {
      plugins: [
        new MergeJsonPlugin({
          force: false,
          groups: [
            {
              files: [
                'common-manifest.json',
                'firefox-manifest.json'
              ],
              transform: (outputJson) => outputJson,
              to: 'manifest.json',
            },
            {
              pattern: '*.json', // glob. see https://github.com/mrmlnc/fast-glob
              to: 'merged-[contenthash].json',
            },
          ],
        }),
      ],
    };

    Options

    • cwd[string] - The directory, an absolute path, for resolving files. Defaults to webpack context

    • groups[array] - Files to merge and destination path

      • files[string[]] - Array of files, path resolved relative to cwd.
      • pattern[string[]] or [string] - [Fast-Glob] pattern matching. The order of merge is not guarenteed.
      • transform[function] - A function to modify the merged json contents. The return json value is written to the output file. If the function returns a promise, it will be awaited.
      • to[string]: Destination path to write the files to.
      • globOptions[GlobOptions] - Options to foward to fast-glob when glob is used otherwise ignored. See https://github.com/mrmlnc/fast-glob#options-3.
    • minify[boolean] - Minify the output json. Enabled by default in production mode.

    • mergeFn[function] - A function used to merge two objects. Defaults to Object.assign.

    // webpack.config.js
    const MergeJsonPlugin = require('merge-json-webpack-plugin');
    const _ = require('loadsh');
    
    const customizer = (objValue, srcValue) => {
      if (_.isArray(objValue)) {
        return objValue.concat(srcValue);
      }
    };
    
    const merge = (object, other) => {
      return _.mergeWith(object, other, customizer);
    };
    
    module.exports = {
      plugins: [
        new MergeJsonPlugin({
          mergeFn: merge,
        }),
        new MergeJsonPlugin({
          mergeFn: (prev, current) => Object.assign(prev, current),
        }),
      ],
    };
    • force[boolean] - Overwrites files already in compilation.assets (usually added by other plugins/loaders). Disabled by default.

    • globOptions[GlobOptions] - Options to foward to fast-glob when glob is used otherwise ignored. See https://github.com/mrmlnc/fast-glob#options-3.

    Install

    npm i merge-json-webpack-plugin

    DownloadsWeekly Downloads

    1,221

    Version

    6.1.0

    License

    MIT

    Unpacked Size

    13.3 kB

    Total Files

    6

    Last publish

    Collaborators

    • sibiraj-s