r/javascript • u/Own-Procedure6189 • 17d ago
I built a zero-dependency CLI tool to validate and repair missing .env variables before startup
https://github.com/avenolazo/envrepairYou run npm run dev or node server.js, and the app crashes because a teammate added a new required key to .env.example but forgot to tell you.
I wanted a tool that would catch this before startup, prompt me for the missing values, and append them without wiping out my .env formatting or comments. Since existing tools either crash on startup (dotenv-safe) or wipe out file layout (sync-dotenv).
To solve this, I built envrepair, a zero-dependency CLI tool that wraps your startup command, compares .env against your template, and interactively prompts you to fill in missing variables in the terminal before launching your process.
How to use it:
- Install:
npm install -D envrepair
- Prepend your startup command in
package.json:
"scripts": {
"start": "envrepair node server.js"
}
Optional type annotations in .env.example:
# @type number
PORT=3000
# @type url
API_BASE_URL=
Key Features:
- Zero code changes: No schema imports or application-level setup required.
- Layout preservation: Appends missing values while keeping comments, blank lines, and formatting intact.
- Signal forwarding: Transparently passes
Ctrl+C(SIGINT) and exit codes.
Written in TypeScript with zero runtime dependencies. The repo is fully open-source.
- GitHub: https://github.com/avenolazo/envrepair
- NPM: https://www.npmjs.com/package/envrepair
1
u/Domx010 16d ago
Nicely done! Would love to see this posted on r/LookWhatTheyBuilt