A webpack loader to merge modules
npm i merge-loader
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 toproduction
. This can be achieved with cross-env when issued as a shell command:
cross-env NODE_ENV=production webpack
Param | Type | Description |
---|---|---|
pattern | string|array |
Provide one or more glob patterns to match files that should be merged in. See glob for more info. |
glob | object |
Options passed to glob. |
merge | string |
Specify a module used for merging. Defaults to merge-loader's own implementation at ./lib/merge`. |