- If your configuration has more than 5-10 options then env vars become a mess while a configuration file is more maintainable
- Nested configuration / scoping is a mature advantage of configuration files
- You can reload configuration files whereas you can't reload environment variables during runtime
- A configuration file is a transparent record of your configuration and easier to backup and restore than env variables. Env variables can be loaded from many different locations depending on your os.
- In configuration files you can have typed values that are parsed automatically with env variables you need to parse them yourself. This is just a difference not that bad for env variables per se.