--- title: dotenv homepage: https://github.com/therootcompany/dotenv tagline: | dotenv: a cross-platform tool to load a .env and run a command. --- To update or switch versions, run `webi dotenv@stable`. ### Files These are the files / directories that are created and/or modified with this install: ```text ~/.config/envman/PATH.env ~/.local/bin/dotenv ``` ## Cheat Sheet > dotenv makes it easy to run a command with a set of ENVs (environment > variables) from a .env file. It works cross platform, and with any programming > environment (Node.js, Go, Rust, Ruby, Python, etc) ```sh # Usage: dotenv [-f .env.alt] -- [arguments] # Example: dotenv -f .env -- node server.js --debug ``` ## How Precedence Works 1. command line flags - ex: `--port 8080` 2. existing environment variables - ex: `export PORT=8080` or `env PORT=8080 mycommand` 3. first-loaded wins for multiple or cascading .env.\* files - ex: `dotenv -f .env,.env.local` ## ENV syntax ```text # comments and blank lines are ignored # you can use quotes of either style FOO=bar FOO2="bar2 bar3" FOO3='bar2 bar3' # 'export' will be trimmed and ignored # (yay for bash compatibility) export FOOBAR=excellent ``` ## Why --? The `--` is a common convention for arguments parsers to let them know that everything after the `--` should be treated as an argument (a word) rather than a flag (not something like `--help`). You should use this whenever one command runs another command.