Require local environment based configs as if they are in
node_modules
.
npm install c0nfig --save
Create configs for every app environment just putting the env name as prefix of the file name:
app-folder/config:~$ ls -a
production.config.js
development.config.js
# etc.
Export some configuration data for every environment like:
// config/development.config.js
module.exports = {
title: 'BLITZKRIEG BOP (STAGING)',
apiUrl: 'https://staging.example.org/api'
};
// config/production.config.js
module.exports = {
title: 'BLITZKRIEG BOP (PRODUCTION)',
apiUrl: 'https://example.org/api'
};
Start your app with proper NODE_ENV
(if not provided it will grab development.config.js
by default), then require/import c0nfig
in your source code and use the data:
// src/app.js
import config from 'c0nfig';
import request from 'superagent';
request.get(config.apiUrl).then(res => { ... });
// src/app.js
const config = require('c0nfig');
const request = require('superagent');
request.get(config.apiUrl).then(res => { ... });
You are able to use template tags like $(configProperty.childProperty)
to point to specific properties of config:
module.exports = {
title: 'BLITZKRIEG BOP!',
http: {
port: process.env.PORT || 8080,
url: process.env.URL || 'https://0.0.0.0:$(http.port)'
}
};
MIT Licensed