1.1.0 • Published 5 years ago
env-stage-loader v1.1.0
Env Stage Loader
Loads .env files in order based on process.env.NODE_ENV value.
- shell
- .env.{environment}.local
- .env.{environment}
- .env.local
- .env
If environment variable is set, any file loaded after will not override it.
Usage
Import and use asap in your build process or app
const loadStageEnv = require('env-stage-loader')
// Load env variables
const values = loadStageEnv()
console.log('resolved values', values)
// Debug load order & value setting
loadStageEnv({ debug: true })
// Set env dynamically
loadStageEnv({
env: 'development'
})
// Force override of any env variable
loadStageEnv({
forceSet: {
FOO: 'this value will win'
}
})
// Force override of any env variable
loadStageEnv({
env: 'development'
// Force unsetting of all previously found ENV vars found in shell
unloadEnv: true
})Examples
Example:
.env.dev.local contains FOO=BAR
.env.dev contains FOO=ZAZ
process.env.FOO === BAR from .env.dev.localExample Two:
# Shell value set
export FOO=1
.env contains FOO=ZAZ
process.env.FOO === 1
# because shell takes precedence
# Also values are never overridden if already setTypical .env files used
.env: Default..env.local: Local overrides. This file is loaded for all environments except test..env.development,.env.test,.env.production: Environment-specific settings..env.development.local,.env.test.local,.env.production.local: Local overrides of environment-specific settings.
Files on the left have more priority than files on the right:
npm start:.env.development.local,.env.local,.env.development,.env
These variables will act as the defaults if the machine does not explicitly set them.
Please refer to the dotenv documentation for more details.
Other Projects
Checkout dotenv-flow if this pkg won't work for ya