0.0.1 • Published 7 years ago

merge-loader v0.0.1

Weekly downloads
4
License
MIT
Repository
github
Last release
7 years ago

merge-loader

A webpack loader to merge modules

Installation

npm i merge-loader

Usage

Example

webpack.config.js

const path = require('path');

module.exports = {
  entry: './src/index.js',
  output: {
    path: path.join(__dirname, 'dist'),
    filename: 'index.js'
  },
  module: {
    rules: [
      {
        test: /config.js$/,
        use: [
          {
            loader: 'merge-loader',
            options: {
              pattern: [
                `env/${process.env.NODE_ENV}/config.*`
              ]
            }
          }
        ]
      }
    ]
  }
};

src/config.js

module.exports = {
  helloWorld: 'Hello World'
};

src/env/production/config.js

module.exports = {
  environment: function() {
    return 'Production';
  }
};

src/index.js

const { helloWorld, environment } = require('./config.js');
console.log(helloWorld); // Hello World
console.log(environment()); // Production

The example assumes that process.env.NODE_ENV is set to production. This can be achieved with cross-env when issued as a shell command:

cross-env NODE_ENV=production webpack

Options

ParamTypeDescription
patternstring|arrayProvide one or more glob patterns to match files that should be merged in. See glob for more info.
globobjectOptions passed to glob.
mergestringSpecify a module used for merging. Defaults to merge-loader's own implementation at ./lib/merge`.