@shxlab/env-inject
v0.1.1
Published
CLI tool to inject environment variables into files at build time for Docker, CI/CD, and static frontend frameworks
Downloads
1
Maintainers
Readme
@shxlab/env-inject
A minimal and fast CLI tool to inject environment variables directly into files at build time — ideal for Docker, CI/CD, and static frontend frameworks.
🚀 Why use env-inject?
This utility helps in scenarios where:
- Environment variables aren't accessible during
ng build,vite build, ornext build - You want to inject values at build time, not runtime
- You want to avoid bundling
process.env.*into frontend code - You want to ensure secrets never get committed into git
- You prefer simple, file-based environment injection instead of build system hacks
Think of it as a lightweight, build-time
envsubstfor TypeScript, JSON, or any text-based config file.
📦 Installation
npm install -g @shxlab/env-injectOr run without installing:
npx @shxlab/env-inject <file>🔧 Usage
▶️ Inject environment variables
# Replaces all {{process.env.VAR_NAME}} with actual values from process.env
env-inject config.ts♻️ Restore from backup
# Restores original file from .bak file
env-inject config.ts --restore💡 Example
🔹 Original file: config.ts
export const config = {
apiUrl: '{{process.env.API_URL}}',
port: {{process.env.PORT}},
debug: {{process.env.DEBUG}}
};🔹 After running:
API_URL=https://api.example.com PORT=3000 DEBUG=true \
npx @shxlab/env-inject config.ts🔹 Output:
export const config = {
apiUrl: "https://api.example.com",
port: 3000,
debug: true,
};✅ Features
- 🔁 Replaces
{{process.env.VAR}}with actual values - 🧾 Automatically creates
.bakbackups before changes - 🔙
--restoreflag restores files from.bak - 💡 No external dependencies — pure Node.js + TypeScript
- 📦 Ready for use in Docker and CI pipelines
- 🚫 Prevents hardcoding env values in source control
🛠 Development
# Install dependencies
npm install
# Build with tsup
npm run build
# Watch changes during development
npm run dev
# Clean build output
npm run clean📄 License
MIT — use it freely in your projects.
