env-reloader
Version:
Auto-restart Node.js server on .env changes | dotenv reload watcher for development
41 lines (34 loc) ⢠1.13 kB
JavaScript
const chokidar = require("chokidar");
const path = require("path");
const nodemon = require("nodemon");
const args = process.argv.slice(2);
if (!args.length) {
console.log("Usage: env-reloader <your-start-file>");
process.exit(1);
}
const envPath = path.resolve(process.cwd(), ".env");
console.log(`š Watching for changes in: ${envPath}`);
// Start nodemon programmatically
nodemon({
script: args[0],
exec: args[0].endsWith(".ts") ? "ts-node" : "node",
ext: "ts js json",
watch: ["src"], // you can customize if needed
});
nodemon
.on("start", () => {
console.log("š Server started with nodemon...");
})
.on("quit", () => {
console.log("š Server stopped");
process.exit();
})
.on("restart", (files) => {
console.log("ā»ļø Nodemon restarted due to:", files);
});
// Watch only .env and trigger nodemon.restart()
chokidar.watch(envPath, { ignoreInitial: true }).on("change", () => {
console.log("\nš¦ .env changed ā restarting server...\n");
nodemon.restart(); // ā
Safe API call instead of signals
});