Executes a command using the envs in the provided env file
npm install @smallpdf/env-cmd





npm install env-cmd or npm install -g env-cmdEnvironment file ./test/.env
```This is a comment
ENV1=THANKS
ENV2=FOR ALL
ENV3=THE FISH
Package.json
`json`
{
"scripts": {
"test": "env-cmd ./test/.env mocha -R spec"
}
}
or
Terminal
`sh`
./node_modules/.bin/env-cmd ./test/.env node index.js
You can specify an .env.local (or any name) env file, add that to your .gitignore and use that in your local development environment. Then you can use a regular .env file in root directory with production configs that can get committed to a private/protected repo. When env-cmd cannot find the .env.local file it will fallback to looking for a regular .env file.
Environment file ./.env.local
``This is a comment
ENV1=THANKS
ENV2=FOR ALL
ENV3=THE FISH./.env
Fallback Environment file ``This can be used as an example fallback
ENV1=foo
ENV2=bar
ENV3=baz
ENV4=quux
ENV5=gorge
Package.json
uses ./.env as a fallback`json`
{
"scripts": {
"test": "env-cmd ./.env.local mocha -R spec"
}
}
or
Terminal
`sh./.env.localuses ./.env as a fallback, because it can't find
`
./node_modules/.bin/env-cmd ./.env.local node index.js
For more complex projects, a .env-cmdrc file can be defined in the root directory and supports as many environments as you want. Instead of passing the path to a .env file to env-cmd, simply pass the name of the environment you want to use thats in your .env-cmdrc file.
.rc file .env-cmdrc
`json`
{
"development": {
"ENV1": "Thanks",
"ENV2": "For All"
},
"production": {
"ENV1": "The Fish"
}
}
Terminal
`sh`
./node_modules/.bin/env-cmd production node index.js$3
Sometimes you want to set env variables from a file without overriding existing process env vars.
Terminal
`sh`
ENV1=welcome ./node_modules/.bin/env-cmd --no-override ./test/.env node index.jsEnvironment File Formats
These are the currently accepted environment file formats. If any other formats are desired please create an issue.
- key=value.env-cmdrc
- Key/value pairs as JSON
- JavaScript file exporting an object
- file (as valid json) in execution directory
Because sometimes its just too cumbersome passing lots of environment variables to scripts. Its usually just easier to have a file with all the vars in them, especially for development and testing.
Do not commit sensitive environment data to a public git repo!
cross-env - Cross platform setting of environment scripts
Special thanks to cross-env for inspiration (use's the same cross-spawn lib underneath too).
- Eric Lanehart
- Jon Scheiding
- Alexander Praetorius
- Anton Versal
- npm run lint checks for code errors and formats according to js-standardnpm test
- make sure all tests passnpm run test-cover` make sure the coverage has not decreased from current master
-