configvention
v3.0.1
Published
Configuration convention with a minimal readonly interface.
Downloads
64
Readme
nodejs-configvention
A node.js configuration convention with a minimal readonly interface. Reads configuration values from the environment, arguments, override configuration file, defaults configuration file.
Available from npm as configvention
.
Usage
import configuration from "configvention";
const something = configuration.get("something");
Installation
npm install --save configvention@latest
Convention
This is the order settings are read for the example node application my-app.js
. configuration.get("something")
will look for something
in this order. When the the first something
is found, the search is stopped and the value is returned.
- In arguments parsed from the command line, like
node my-app.js --something 1234
. - In the environment variables, for
something
. - In the JSON object from the file
my-app.js.config.json
, wheremy-app.js
is the filename of your node app. - In the JSON object from the file
my-app.js.defaults.config.json
, wheremy-app.js
is the filename of your node app.
If something
can't be found, then it returns undefined
.
my-app.js.config.json
contains settings that apply to the current folder. This file should not be checked in to your version control system (git/hg/svn), but replaced by whoever is running the node app. It's different for, for example, developers on their own machines and production servers.my-app.js.defaults.config.json
contains sane defaults and is checked in to version control system.
Neither my-app.js.config.json
nor my-app.js.defaults.config.json
are required, but you probably would like to have at least my-app.js.defaults.config.json
.
Debugging
To get some insight on files loaded, configuration values read etcetera, enable debugging from the command line.
DEBUG='configvention:*' node my-app.js
Versions
For details, see git commits, git tags and published npm versions.
- Configvention >= v3.0.0:
- ECMAScript Module (ESM) package.
- For use with Node.js v16 or later.
- Configvention <= v2.0.0:
- CommonJS (CJS) legacy package.
- For use with all (?) Node.js versions.
Alternatives
Some alternatives found glancing over npm modules dependent on nconf.
- nconfs: node.js convention/library for multiple nconf settings.
- reconf: Recursive configuration file management with defaults and overrides for nconf.
Copyright © 2012, 2016, 2021, 2023, Joel Purra. All rights reserved.
When using nodejs-configvention, comply to at least one of the three available licenses: MIT, BSD-2-Clause, GPL-3.0-or-later.
Please see the LICENSE
files for details.