config-webpack-plugin
v1.1.0
Published
Merge configuration files with environment variables.
Downloads
58
Maintainers
Readme
config-webpack-plugin
💫 Merge one or more configuration files together with environment variables too.
Installation
npm install config-webpack-plugin --save-dev
How it works?
webpack.config.js
:
const ConfigPlugin = require('config-webpack-plugin')
module.exports = {
plugins: [
new ConfigPlugin([
'./config.js',
'./config.local.js'
])
]
}
- The
config-webpack-plugin
will merge all specified configuration file contents from right to left, thus creating a ‘merged configuration’. - If the ‘merged configuration’ contains a
key
matching a current environment variable then the relatedvalue
will be replaced by the environment variable's value. - Finally, the
config-webpack-plugin
will intercept the ‘main configuration’ file (the first specified) during webpack's module resolution and will replace its source with the ‘merged configuration’.
Usage
Single configuration
const ConfigPlugin = require('config-webpack-plugin');
module.exports = {
plugins: [
new ConfigPlugin('./config.js')
]
}
Multiple configuration
const ConfigPlugin = require('config-webpack-plugin');
module.exports = {
plugins: [
new ConfigPlugin([
'./config.js',
'./config.local.js'
])
]
}
FAQ
What is a configuration file?
A module that export an object with key/value pairs that looks like:
module.exports = {
API_BASE_URL: 'http://localhost/',
NODE_ENV: 'development',
AUTH_SPOOFED: true,
}
Does my configuration file gets modified?
No.
Development
If you want to collaborate with the development of config-webpack-plugin
you need to have installed NodeJS 6 and Gulp. Then follow these instructions to make my life easier:
- Fork this repo.
- Clone your forked repo.
- Create a feature branch with:
git checkout develop; git checkout -b feature/<name-of-feature>
. - Create a pull request to be merged into
develop
branch.
💁 Please, do not submit PR to be merged into
master
branch.
Roadmap
- [x] Add test. Please!
- [x] Add CI. Please!
- [x] Support multiple file (
new ConfigPlugin(['./config.default.js', '.config.local.js'])
). - [ ] Support JSON file too ♥️, because they are prettiest for configuration.
- [ ] Add a static website using GitHub Pages (why not?).
💁 Do you want to suggest a feature? Add a suggestion.