webpack-config-assign
v1.0.0
Published
A utility to recursively merge webpack config(s)
Downloads
8
Readme
webpack-config-assign
A utility to "smartly" merge/assign a series of webpack configs, typically a "base" config then merged with one to many environment configs (e.g. development, test, production, etc.). Think of it like an intelligent Object.assign
, but tailored specifically for Webpack configs
Install
npm install webpack-config-assign --save-dev
or
yarn add webpack-config-assign --dev
Usage
webpackConfigAssign(baseConfig, ...extendConfigs)
The utility assumes that the first argument passed in is the "base," and any subsequent configs are smartly merged with this base config.
const webpackConfigAssign = require('webpack-config-assign');
const baseConfig = require('./webpack.config.base');
const devConfig = process.env.NODE_ENV === 'development' ? require('./webpack.config.development') : {};
module.exports = webpackConfigAssign(baseConfig, devConfig);
Usage with Webpack 2
This utility also works with webpack 2, and in particular, works particularly well with webpack 2's ability to pass in environment from the CLI.
Additionally, this utility works seamlessly with module.loaders
(webpack 1) or module.rules
(webpack 2), and interops with both (although it's recommended to choose one style, if possible)
given: webpack --env.development=true
const webpackConfigAssign = require('webpack-config-assign');
module.exports = function(env) {
const baseConfig = require('./webpack.config.base');
const developmentConfig = env.development ? require('./webpack.config.development') : {};
return webpackConfigAssign(baseConfig, developmentConfig);
};