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 = moduleexports = plugins: './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 = ; moduleexports = plugins: './config.js'
Multiple configuration
const ConfigPlugin = ; moduleexports = plugins: './config.js' './config.local.js'
FAQ
What is a configuration file?
A module that export an object with key/value pairs that looks like:
moduleexports = 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
- Add test. Please!
- Add CI. Please!
- 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.