3 ms·
God, I hate .env files
There is no reason anyone would ever use this instead of a regular config file.
- KevinMS 6mo agoI never figured out why they are dot files. Why are we hiding important information from somebody using a shell?
- the_real_cher 6mo agoDon't people use it with direnv?
- zorobo 6mo ago`.envrc` by default
- myst 6mo agoWhat makes you believe that abruptly venting on HN will help?
- i80and 6mo agoThey are right to say it though
- Someone 6mo agoI guess they’re thinking God (https://news.ycombinator.com/user?id=God https://news.ycombinator.com/user?id=God) will read their message and do something about it.
- cholantesh 6mo agoSuch low karma for a numinous presence!
- vincentabolarin 6mo agoNothing like chasing a process.env that is undefined.
- ktpsns 6mo agoSame here. What I hate most is the fact how tooling decides what should be hidden files and what not. Hiding important configuration files (also done by some SSGs) is a bad habit which makes it hard to explore a new project. At least such files should be refered to in some README.
- tacoooooooo 6mo agowhats wrong with .env files?
- Gormo 6mo agoI think the overuse of .env files is a side effect of the overuse of containers. Working with config files is much more convenient if you're running software normally, but if you're shipping an entire baseline OS along with your application, getting application-specific configuration data into the container becomes non-trivial. Environment variables provide a standardized way of making configuration data set outside the container available from within it.
- righthand 6mo agoHow are they different than a regular config file? .env and .mytoolconfigrc seem like the same thing to me.
- thinkxl 6mo ago.env files are a different use case than config files. You can use them together. Config files provide configuration to the application. The config file can read environment variables, so you can deploy the same code across different environments, e.g., your local computer, staging, and production. Then, each environment will provide system-related configuration, e.g., `DATABASE_URL`. With this setup, the same code will work on each environment. Now, .env files should live only on your local machine; on any other environment, they should be set differently, not in files. The .env file is a convenience, but not the only option for environment variables, nowdays you can use 1Password too.