@buildery-it/config
Shared config for universal JavaScript apps.
Loads configs in a certain order, next config always overriding previous one. Performs a deep merge of nested properties.
To use this module create a config
folder next to your node_modules
folder with one of the following files (loaded in this order):
default.js
mycustomenv.js
where mycustomenv
is what you would set NODE_ENV tolocal.js
Defaults:
By default config object is supplied with the following properties:
environment
is the value of NODE_ENV
environment variable or 'development'
debug
is true
if environment
is development
sandbox
is true
if SANDBOX
environment variable is set to true
or debug
is true
Options:
All options can be set in the process environment:
NODE_ENV
sets node environment, default: development
SANDBOX
sets sandbox mode, default: (empty), accepts: true
CONFIG_DIR
sets the name/path to config folder, relative to the project root, default: config
Usage:
const config = require('@buildery-it/config');
There is a special ConfigPlugin for Webpack to bundle config in your client app:
const ConfigPlugin = require('@buildery-it/config/plugin');
plugins: [
new ConfigPlugin(options),
],
ConfigPlugin accepts an options object:
const options = {
getConfig: (fullConfig) => {
const { clientSafePortion } = fullConfig;
const configWithoutSecrets = { clientSafePortion };
return configWithoutSecrets;
},
esModule: true,
};