
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
config-json5
Advanced tools
Put configuration files in config which is at project root dir.
config/advanced/com/somewind/default.js
config/advanced/com/default.js
config/advanced/com/somewind.json
config/advanced/com.somewind/default.js
config/advanced/com.somewind/domain1.dev.json
config/advanced/com.somewind/domain1.js
config/advanced/com.somewind/domain2.json
config/advanced/com.somewind.json
config/advanced/default.js
config/default.json
config/default.json5
When process.env.NODE_ENV is com.somewind.domain1.dev or domain1.dev, it will merge the following configurations in a top-down order.(use lodash.merge, array is override)
config/advanced/default.js
config/advanced/com/default.js
config/advanced/com/somewind.json
config/advanced/com.somewind.json
config/advanced/com/somewind/default.js
config/advanced/com.somewind/default.js
config/advanced/com.somewind/domain1.js
config/advanced/com.somewind/domain1.dev.json
config/default.json5
config/default.json
Note:
config/advanced is the advanced configuration, it overwrites step by step in Namespace Order.config/*.EXT is the highest priority configuration, follows the Namespace Order, and overrides the advanced configurationyaml > json > json5 > js.. > /json ext file format is same as json5.import config from 'config-json5'
config.Customer.dbConfig
config.get('Customer.dbConfig')
config.has('Customer.dbConfig')
You can use custom dirname or env to manage your configuration.
module1/config
module1/config/index.js
module1/config/default.js
module1/config/index.js
import config from 'config-json5'
// option dirname, must be fullpath or [fullpath0, fullpath1, ...]
// option env, default is process.env.NODE_ENV
export default config.parse(__dirname, process.env.TARGET, [arg1, arg2, ...argN])
Use parameter in config file.
export default (arg1, arg2 ...argN) => ({
Customer: {
arg1: arg1
}
})
Import from your export code.
import config from './module1/config'
config.Customer.dbConfig
config.get('Customer.dbConfig')
config.has('Customer.dbConfig')
Configurations can be split in chunks.
// default.json
{
"app": {
"name": "test",
"port": 1234
},
"database": {
"username": "root",
"password": "1234"
},
"logger": {
"level": "info"
},
"domain": "docs.config-json5.org"
}
default.json can be split into the following files
// @.json
{
"logger": {
"level": "info"
},
"domain": "docs.config-json5.org"
}
// @app.json
{
"name": "test",
"port": 1234
}
// @database.json
{
"username": "root",
"password": "1234"
}
FAQs
configuration control with namespaces and yaml/json5/js
We found that config-json5 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.