optimist-config-file
v1.0.1
Published
Extends optimist with support for JSON/YAML config file Edit
Downloads
94
Maintainers
Readme
optimist-config-file
Extends optimist
npm module with support for JSON/YAML config file and Docker's inspired environment variables handling.
How to use it
Refer to
examples/example.js
npm install --save optimist-config-file
const program = require('optimist-config-file');
program
.usage('...')
// ...
.describe('config', 'uses JSON or YAML-formatted config file to set parameters').string('config');
// handle --config option for passing YAML/JSON config files
program.setConfigFile('config');
// allow env variables to be passed
program.setReplacementVars(process.env);
// parse options
const options = program.parse(process.argv);
console.log(options);
Example
YAML config file:
banner: Hello, ${USERNAME}! Greetings from ${HOSTNAME:-The Unknown Machine}.
Invocations with environment variables and options:
./example.js --config config.yaml
Hello, macbre! Greetings from The Unknown Machine.
HOSTNAME=`hostname` ./example.js --config config.yaml
Hello, macbre! Greetings from debian.
./example.js --config config.yaml --banner='foo'
Hello, macbre! Greetings from The Unknown Machine.
As you can see config file values have precedence over command line ones.