
Validar el uso de variables de entorno en la base de código
Escanea tu código para detectar cada referencia a variables de entorno. Te ayuda a detectar variables faltantes, sin usar, duplicadas o mal utilizadas antes de que causen errores en tiempo de ejecución.
Soporte de primera clase para SvelteKit, Next.js y Nuxt. También funciona bien en proyectos modernos de JavaScript/TypeScript y frameworks como Node.js y Vue — o en cualquier otro entorno donde necesites una comparación fiable de archivos .env.
✨ Destacado en awesome-cli-apps - Una lista curada de aplicaciones CLI impresionantes

→ Consulta la Documentación de Capacidades para conocer los detalles sobre qué comprueba el escáner y cómo funciona.
--init)Genera un archivo de configuración predeterminado:
dotenv-diff --init
→ Consulta la Documentación de Configuración para más detalles.
Integra fácilmente dotenv-diff en tus hooks de Git o pipelines de CI/CD para garantizar la consistencia de las variables de entorno.
→ Consulta la Documentación de Git Hooks para más detalles.
En proyectos de SvelteKit, Next.js y Nuxt, dotenv-diff detecta el mal uso de variables de entorno específico del framework.
▸ Problemas del framework (SvelteKit)
──────────────────────────────────────────────────────────────────────
PUBLIC_API_URL $env/dynamic/private
las variables no deben
comenzar con "PUBLIC_"
src/routes/+page.server.ts:3
──────────────────────────────────────────────────────────────────────
→ Consulta la Documentación de Frameworks para más detalles.
.env.exampleUn .env.example escrito de forma que sea más fácil de entender para los nuevos colaboradores del equipo:
# Entorno de Node (development, production, etc.)
# @optional
NODE_ENV=development
# La URL pública de la API se usa para llamar a nuestro backend
PUBLIC_API_URL=http://localhost:3000
# Token temporal para el sandbox de la API del socio — pide uno nuevo al equipo de integraciones
# @expire 2027-03-31
PARTNER_API_TOKEN=
→ Lee más: Escribir un buen .env.example
Un escaneo compara tu código contra un solo archivo — por lo que cualquier clave que añadas a .env y olvides en .env.example es invisible hasta que un nuevo colaborador clona el repositorio. Las advertencias de deriva detectan exactamente eso:
▸ Deriva entre .env y .env.example
──────────────────────────────────────────────────────────────────────
STRIPE_SECRET no documentado en .env.example
──────────────────────────────────────────────────────────────────────
Activado por defecto; desactívalo con --no-drift-warnings.
→ Consulta Advertencias de Deriva para más detalles.
Añade metadatos de expiración a tus variables de entorno para recibir advertencias cuando estén a punto de expirar. Por ejemplo, en tu archivo .env:
# @expire 2025-12-31
API_TOKEN=
→ Consulta la Documentación de Expiración para más detalles.
Puedes ignorar advertencias específicas de variables de entorno añadiendo comentarios en tu código. Por ejemplo:
const apiKey = process.env.API_KEY; // dotenv-diff-ignore
Esto es útil cuando sabes que una advertencia específica es segura en tu código fuente.
→ Consulta la Documentación de Comentarios de Ignorar para más detalles.
--baseline)Adopta dotenv-diff en proyectos que ya tienen advertencias conocidas registrando el estado actual en un archivo de referencia. Las ejecuciones futuras solo reportarán problemas recién introducidos:
dotenv-diff --baseline
→ Consulta la Documentación de Baseline para más detalles.
--explain)Inspecciona una variable de entorno específica para ver dónde está definida, dónde se usa en el código y su estado general:
dotenv-diff --explain DATABASE_URL
→ Consulta la Documentación de --explain para más detalles.
En monorepos con múltiples aplicaciones y paquetes, puedes incluir carpetas compartidas:
{
"scripts": {
"dotenv-diff": "dotenv-diff --example .env.example --include-files '../../packages/**/*' --ignore VITE_MODE"
}
}
→ Consulta la Documentación de Monorepo para más detalles.
Esto:
0 → Sin errores1 → Errores encontrados (o advertencias en modo estricto)→ Consulta la Documentación de dotenv-diff para la documentación completa
Las incidencias y solicitudes de extracción son bienvenidas.
→ Consulta CONTRIBUTING para más detalles.
Gracias a estas increíbles personas por contribuir a este proyecto:
Licenciado bajo la licencia MIT.
Creado por chrilleweb